保存在mysql中由“unique”过滤的新记录

时间:2015-09-16 17:25:53

标签: mysql

我有一个每次用户登录时运行的查询。 由于此查询涉及用户最近第三方更新的信息,我认为最好将表中的user_id + information组合设为唯一。因此,每当用户试图保存新信息时,它只会保存我已经没有的一个信息。所以,第一个查询是

INSERT INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets")

当用户第二次登录并且

INSERT INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets"),("1","chocolate")

它只会保存("1","chocolate")因为(id,info)是一个唯一的对,所有其他都不会被插入。我意识到如果只有一个失败,他们都会失败。所以我的问题是:有没有办法覆盖这个操作?或者我是否必须首先查询数据库以过滤我已有的信息? tyvm ...

1 个答案:

答案 0 :(得分:0)

使用IGNORE关键字时,将忽略执行中的每个错误。示例:如果在执行INSERT语句时出现重复或PRIMARY键错误,则会忽略它并且不会中止执行

使用此:

I NSERT IGNORE INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets"),("1","chocolate");