Michael Schröpl: (MySQL) richtige Anweisung gesucht

Beitrag lesen

Hi Andreas,

finde ich aber ziemlich umständlich im Gegensatz zum Subselect:

das Beispiel wird m. E. deshalb so umständlich, weil es gleichzeitig
eine potentielle Transaktion am Leben halten will. Und das ist bei zwei
Statements nun mal nicht dasselbe wie bei nur einem im AutoCommit-Modus.

Im Prinzip siehst Du bei mySQL ja nur, wie jede Datenbank ein Subselect
intern realisieren muß - hier mußt Du es halt explizit hinschreiben.
(Potentiell könnte man SubSelects beliebig tief schachteln, und das
stellt dann so hohe Anforderungen an eine effiziente Verwaltung der
Ressourcen, daß sich mySQL dieser Herausforderung bisher anscheinend
nicht stellen möchte.)

Wenn Du nur lesend auf Deine Tabelle zugreifen willst und keine hohe
Prirität darauf legst, daß Dein Skript niemals inkonsistente Daten
im Falle gleichzeitiger Zugriffe anzeigt, könntest Du das LOCK und
das UNLOCK weglassen. Und auch das DROP brauchst Du bei einer tempo-
rären Tabelle nicht, wenn Du mal eben einen CGI-Zugriff machst - die
existiert nur während Deiner Datenbankverbindung.
Wäre Dein Programm als daemon dauerhaft mit der Datenbank verbinden,
dann wäre das sofortige, aktive Aufräumen der Tabelle wichtiger.

Das Beispiel zeigt Dir die "volle Dröhnung" unter Berücksichtigung
aller Eventualitäten. In Deinem Falle geht es wohl auch "billiger".

Viele Grüße
      Michael