不存在时插入 SQL
Posted
技术标签:
【中文标题】不存在时插入 SQL【英文标题】:SQL Insert when not exists 【发布时间】:2013-12-16 17:13:28 【问题描述】:这个问题我找了一阵子,还是没解决……
我想检查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 告诉我第一行有语法错误。
感谢您的解决方案。
【问题讨论】:
查看之前发布的答案:***.com/questions/1361340/… 【参考方案1】: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)
【讨论】:
【参考方案2】:你可以试试这个:
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)
【讨论】:
以上是关于不存在时插入 SQL的主要内容,如果未能解决你的问题,请参考以下文章