【问题标题】:"if not exists" SQL Statement Giving Error [duplicate]“如果不存在” SQL 语句给出错误 [重复]
【发布时间】:2014-04-12 23:07:51
【问题描述】:

我正在运行以下 sql 查询,它给了我错误 1064,语法错误。

IF NOT EXISTS (select * from locations where STREET_ADDRESS = 'test') 
BEGIN
    insert into locations (STREET_ADDRESS) values ('test') 
end;

有人可以帮帮我吗?它看起来很简单,但它不会运行。谢谢。

另外,我正在运行 MySQL 5.6.11 版

【问题讨论】:

  • values, where, from, select, inset, into 一定要上试一下
  • @user3173819 不; MySql 不区分大小写,至少我的版本是。不过还是谢谢你的建议。
  • 您应该按照“如果不存在”[1] 的方式点击此链接:stackoverflow.com/a/3164741/3242978

标签: mysql sql database


【解决方案1】:

你也可以试试这个

INSERT INTO locations (STREET_ADDRESS)
SELECT 'test' FROM DUAL
WHERE NOT EXISTS (
   SELECT * from locations where STREET_ADDRESS = 'test'
) LIMIT 1;

【讨论】:

    【解决方案2】:

    试试这个

    IF ((select * from locations where STREET_ADDRESS = 'test')=0 )
    BEGIN
    insert into locations (STREET_ADDRESS) values ('test') 
    end;
    

    【讨论】:

      【解决方案3】:

      你应该使用这种类型的示例代码:

         INSERT INTO table_listnames (name, address, tele)
          SELECT * FROM (SELECT 'Rupert', 'Somewhere', '022') AS tmp
          WHERE NOT EXISTS (
              SELECT name FROM table_listnames WHERE name = 'Rupert'
          ) LIMIT 1;
      

      click here

      【讨论】:

        猜你喜欢
        • 2021-07-17
        • 1970-01-01
        • 2018-12-03
        • 1970-01-01
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 2016-01-05
        • 2012-04-18
        相关资源
        最近更新 更多