我尝试将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行"。数据库是空的。即使有其他数据,第一个数据集也不会被保存;但我也没有得到错误。问题出在哪儿?谢谢!
答案 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;
在这种情况下,第二行的id
为tt70273426
。