mysql条件插入?

时间:2011-04-05 23:20:29

标签: mysql

如果表中没有包含给定值的其他行,我现在已经浏览了几十个论坛,发现MySql语法插入一行。

我知道它必须简单,但到目前为止还没有找到能满足我需要的东西......

我的要求很简单:

if not exists (select * from table1 where int_value2 = 123) then insert into table1 (value1, int_value2, value3) values ('a', 1, 'a');

我很抱歉我知道这会是多么简单,但要提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

定义UNIQUE约束(如果它尚不存在):

ALTER TABLE table1  ADD UNIQUE(int_value2);

INSERT IGNORE INTO table1 (value1, int_value2, value3) VALUES ('a', 1, 'a');

注意'IGNORE`位。

如果您需要value1 / value3中的'新鲜'数据,则可以查看ON DUPLICATE KEY UPDATE

INSERT INTO table1 (value1, int_value2, value3)
SELECT 'a', 1, 'a' FROM DUAL 
WHERE NOT EXISTS(SELECT * FROM table1 WHERE int_value2=123);