phpbar.de logo

Mailinglisten-Archive

[php] Mehrere Tabellen gleichzeitig updaten ?

[php] Mehrere Tabellen gleichzeitig updaten ?

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Wed, 09 Jun 1999 10:29:05 +0200


Alexander Meis wrote:
> Ist es möglich 2 tabellen mit einem select statement zu
> updaten ?

Mit einem select-Statement updated man gar nicht. Dafür ist das
update-Statement zuständig.

In einer richtigen Datenbank kann man mit einem "SELECT ... FOR
UPDATE" in mehrere Tabellen Spalten sperren, diese dann einzeln
mit getrennten UPDATE-Anweisungen ändern und schließlich mit
einem COMMIT die Sperren fallen lassen.

Alternativ hat man eine ganz richtige Datenbank (etwa Oracle 8),
die updateable Views hat. Dann kann man sich einen View
zusammenlöten und diesen mit einem einzigen UPDATE bearbeiten.
Oracle pult das dann intern auseinander.


In MySQL geht das nicht so schön. Dort muß man sich mit LOCK
TABLES a, b, c WRITE die Tabellen sperren, dann seine
UPDATE-Anweisungen fahren und mit UNLOCK TABLES die Sperren
fallen lassen. Das sind aber Table- und keine Row-Locks, das
kostet also Performance.

> Kann man das irgentwie in einem Statement machen ?

Nein.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive