如果不存在类似的记录,请添加新记录

时间:2015-07-31 14:40:52

标签: mysql sql database merge

MySQL数据库表mydata有六列,比如indexcolacolbcolccold,{{1} }。

索引是AUTO_INCREMENT。

我有一组新的值colevalavalbvalcvald

我想将这些值插入表中,当且仅当没有“相似”记录时,定义为(valecola=valacolb=valb)。 (如果有这样的记录,什么都不做,我对这些数据不感兴趣。)

我认为这样的事情,但我无法达到正确的语法:

colc=valc

2 个答案:

答案 0 :(得分:1)

您需要先将这些列添加到复合键中。

您可以使用REPLACE而不是INSERT来覆盖旧行。在处理包含复制旧行的唯一键值的新行时,REPLACE是INSERT IGNORE的对应物:新行用于替换旧行而不是被丢弃。请参见第13.2.7节“REPLACE语法”。

https://dev.mysql.com/doc/refman/5.0/en/insert.html

答案 1 :(得分:0)

您可以使用此命令: -

INSERT IGNORE INTO `mydata`(cola, colb, colc, cold, cole, colf)
VALUES (vala,valb,valc,vald,vale,valf)

希望这会对你有所帮助。