PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if - Anweisung



larsb
01-07-2003, 08:46
Hallo !

Ich habe ein kleines Problem mit einer if - Abfrage.
Auf dem MS SQL Server läuft diese Abfrage so:

if (Select count (Name) from hardware where (Name) = 'Dresden') > 0
update Hardware
set Zubehör = 'neues zubehör' from Hardware where (Name) like 'Dresden'
else
insert into Hardware (Name) values ('neuer PC')

Wie bekomme ich das in mySQL hin? Hab schon die Referenz nachgelesen, viel probiert, aber es hat nicht sollen sein .....

Danke schon im Voraus!

Christoph
01-07-2003, 08:55
IF-Verzeigungen sind nicht Bestandteil von SQL2, wohl aber von prozeduralen
SQL-Erweiterungen (z.B. PL/SQL bei Oracle oder PL/pgSQL bei Postgres).
MySQL unterstützt aber leider keine solche Erweiterungen.

Zumindest ein Insert, das nur ausgeführt wird, wenn es den Satz noch nicht
gibt, geht mit dem reinen SQL2-Standard:


INSERT INTO tbl
SELECT 'val1','val2',... [FROM dual /*nur bei Oracle*/]
WHERE NOT EXISTS
(SELECT NULL FROM tbl WHERE condition)

Das klappt aber natürlich auch nicht mit mySQL, aber mit jeder
anderen Datenbank.

larsb
01-07-2003, 09:15
Danke für die Antwort!

Schade, dass das nicht geht!
Da muss ich mir wohl irgendwie etwas anderes einfallen lassen!

Lars