插入不存在的`table`

时间:2012-06-01 08:35:30

标签: java mysql

我想将值插入表中,但需要检查该值是否存在于最后一行中。我通常插入像

这样的值
INSERT INTO `table` (`column1`,`column2`,`column3`,`column4`) VALUES ('value1','value2','value3','value4')

但是现在我需要检查一下,如果表1的最后一行中存在value1则不插入,否则插入。

为此我试图使用

WHERE NOT EXISTS

如果值存在,我实际上想检查表的最后一行,然后它不应该复制它。

4 个答案:

答案 0 :(得分:1)

您可以明确说明当表的主键已存在时会发生什么。例如:

INSERT INTO table (...) VALUES (...) ON DUPLICATE KEY UPDATE

答案 1 :(得分:0)

别选子选择。它在MySQL中是强制性的。

答案 2 :(得分:0)

另外,根据文档,在WHERE NOT EXISTS选择中,您不需要指定字段(value1,value2,在您的情况下),因为它完全被忽略。所以只需使用*

无论如何,我相信这会回答你的问题: How to 'insert if not exists' in MySQL?

答案 3 :(得分:0)

在对上添加唯一约束(第1列,第2列)不是更好的方法吗?