SQL Einfügen, wenn nicht existiert

Ich habe eine Weile nach diesem Problem gesucht, aber ich kann es nicht lösen ...

Ich möchte überprüfen, ob ein Datensatz in einer MySQL-Tabelle nicht existiert und dann einen Datensatz einfügen.

Hier ist mein Code:

IF NOT EXISTS (SELECT * FROM personOffice WHERE personID = 2 AND officeID = 1)
    BEGIN
        INSERT INTO personOffice (personID, officeID) VALUES ('2', (SELECT officeID FROM offices WHERE title = 'Berlin'))
    END

Mysql sagt mir, dass es in meiner ersten Zeile einen Syntaxfehler gibt.


Thanks for your solutions.

0
Siehe zuvor gepostete Antwort: MySQL existiert" > stackoverflow.com/questions/1361340/…
hinzugefügt der Autor Andrew - OpenGeoCode, Quelle

2 Antworten

INSERT INTO personOffice(personID, officeID) 
SELECT '2', (SELECT officeID FROM offices WHERE title = 'Berlin') FROM dual
WHERE NOT EXISTS (SELECT * FROM personOffice WHERE personId = 2 AND officeID = 1)
0
hinzugefügt

Du könntest das versuchen:

INSERT INTO personOffice (personID, officeID) 
VALUES ('2', (SELECT officeID FROM offices WHERE title = 'Berlin')) 
WHERE NOT EXISTS (SELECT * FROM personOffice WHERE personID = 2 AND officeID = 1)
0
hinzugefügt