【问题标题】:mysql if not existmysql 如果不存在
【发布时间】:2011-08-18 20:23:49
【问题描述】:

我来自 MSSQL,现在使用 Mysql,这可能很简单,但你如何执行 如果不存在语句。谢谢

IF NOT EXISTS(SELECT * from users WHERE Username = spUsername)
    BEGIN
    INSERT into users(ID,Username,Password,Email,Birthdate,DateJoin)
            VALUES(UUID(),spUsername,spPassword,spEmail,spBirthDate,NOW());
    END

【问题讨论】:

标签: mysql if-statement


【解决方案1】:

无论如何我都不是数据库专家,但我就是这样做的。

http://www.somethinghitme.com/2010/05/06/mysql-stored-procedures-if-not-exists/

    DECLARE SomeId int;
    DECLARE CheckExists int;
    SET CheckExists = 0;  

    SELECT 1 INTO CheckExists from lookup_table WHERE someField = in_SomeParam LIMIT 1;   

    IF (CheckExists > 0) THEN
        SELECT id INTO SomeId FROM lookup_table WHERE someField = in_SomeParam;
    ELSE
        INSERT INTO lookup_table (someField ) VALUES(in_SomeParam);
        SELECT SomeId = LAST_INSERT_ID();
    END IF; 

【讨论】:

  • 需要注意的一点是,在 select 语句中过滤记录集的计数是强制的、不必要的。另一种方法是SELECT 1 INTO CheckExists FROM lookup_table WHERE someField = in_SomeParam LIMIT 1;
猜你喜欢
  • 1970-01-01
  • 2011-10-14
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 2014-04-14
相关资源
最近更新 更多