昨天我问了这个问题:如果在 mysql insert 语句中,答案非常好。问题是如果值不存在,我需要在表中插入一行。铁
If('x' NOT EXIXTS in (select campoX from table) then
insert into table (...) values (...) etc.
我能怎么做?在互联网上我找不到答案:(
昨天我问了这个问题:如果在 mysql insert 语句中,答案非常好。问题是如果值不存在,我需要在表中插入一行。铁
If('x' NOT EXIXTS in (select campoX from table) then
insert into table (...) values (...) etc.
我能怎么做?在互联网上我找不到答案:(
我假设您的表名为 tbl。
INSERT INTO tbl (campoX )
SELECT 'X' FROM DUAL
WHERE NOT EXISTS(
SELECT campoX from tbl
WHERE campoX ='X'
);
DUAL
纯粹是为了方便那些要求所有 SELECT 语句都应该有 FROM 和可能的其他子句的人。MySQL 可能会忽略这些子句。如果没有引用表,MySQL 不需要 FROM DUAL。
正如其他一些提到的,INSERT IGNORE
如果您的 campoX 是唯一或主键字段,您可以在此处使用语句。
使用双表:
INSERT INTO campoX (col1, col2, col3)
SELECT value1, value2, value3
FROM dual
WHERE NOT EXISTS(SELECT *
FROM campoX
WHERE col1=value1);
关于什么:
CASE
WHEN 'X' NOT EXIST IN (SELECT campoX FROM yourTable) THEN
INSERT INTO yourTable (...) VALUES (...)
END CASE
发明你的编程语言并不是描述你的问题的最合适的方式。
你的意思是你只想添加一个数据在数据库中不存在的行吗?如果是这样,请确保您已在表上定义了主键或唯一键并无论如何都执行 INSERT - 但忽略重复键错误。实际上,使用 MySQL,您可以使用“INSERT IGNORE....”完全抑制重复键的错误生成。