我有一个每次用户登录时运行的查询。 由于此查询涉及用户最近第三方更新的信息,我认为最好将表中的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 ...
答案 0 :(得分:0)
使用IGNORE关键字时,将忽略执行中的每个错误。示例:如果在执行INSERT语句时出现重复或PRIMARY键错误,则会忽略它并且不会中止执行
使用此:
I NSERT IGNORE INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets"),("1","chocolate");