2013-12-16 66 views
1

我搜索了一会儿这个问题,但我解决不了的......SQL插入时不存在

我要检查,如果记录不以MySQL表存在,然后插入一条记录。

这里是我的代码:

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的告诉我,那里有我的第一行语法错误。


感谢您的解决方案。

+1

见以前发布的答案:http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql –

回答

0
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

你可以试试这个:

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)