mysql 如果不存在
Posted
技术标签:
【中文标题】mysql 如果不存在【英文标题】:mysql if not exist 【发布时间】: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
【问题讨论】:
可能重复:***.com/questions/1361340/… 【参考方案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;
以上是关于mysql 如果不存在的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:如果值存在,则对行进行更新,如果值不存在,则插入 [重复]
PHP MYSQL UPDATE 如果存在或 INSERT 如果不存在?