SQL忽略上一个值

时间:2015-06-08 19:51:49

标签: mysql sql phpmyadmin

我尝试将5个数据集插入到我的数据库中。 SQL是这样的:

INSERT INTO imdb_crawl (id, title, link) VALUES 
('tt3008816', '009-1: The End of the Beginning', 80048948), 
('tt2353767', '1,000 Times Good Night', 80001898), 
('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 
('tt2290065', '100 Bloody Acres', 70276012) 
ON DUPLICATE KEY UPDATE id = id;

我得到了回复"添加了4行"。数据库是空的。即使有其他数据,第一个数据集也不会被保存;但我也没有得到错误。问题出在哪儿?谢谢!

1 个答案:

答案 0 :(得分:2)

第3行和第4行使用相同的键:

('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 

所以你只有4行而不是5行。

在您的语句中,您有语句ON DUPLICATE KEY UPDATE id = id,但它在您的情况下不执行任何操作,因为它将值id更新为相同的值。您需要将其更新为更有意义的内容,例如:

INSERT INTO imdb_crawl (id, title, link) VALUES 
('tt2391950', '1000 to 1: The Cory Weissman Story', 80010865), 
('tt2391950', '100 Below Zero', 70273426), 
ON DUPLICATE KEY UPDATE id = 'tt' + link;

在这种情况下,第二行的idtt70273426