【问题标题】:SQL Insert when not exists不存在时插入 SQL
【发布时间】: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 告诉我第一行有语法错误。


感谢您的解决方案。

【问题讨论】:

标签: mysql insert exists


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2018-09-17
      相关资源
      最近更新 更多