Insertar SQL cuando no existe

Busqué un tiempo para este problema, pero no puedo resolverlo ...

Quiero verificar si un registro no existe en una tabla MySQL y luego insertar un registro.

Aquí está mi código:

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 me dice que hay un error de sintaxis en mi primera línea.


Thanks for your solutions.

0
Véase la respuesta previamente publicado: stackoverflow.com/questions/1361340/…
agregado el autor Andrew - OpenGeoCode, fuente

2 Respuestas

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
agregado

Puede intentar esto:

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
agregado