我特林做到這一點複製表中的所有行和防止重複鍵
- 獲取一個表名爲博客的所有行。
- 複製他們在一個臨時數據庫
- 編輯的這個臨時表中記錄的語言領域
- 插入到博客表
而且我想這樣的:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
但corse我得到重複的關鍵錯誤...
如何防止它?
CNC中
我想:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
ALTER TABLE tmptable DROP id;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
但隨後Column count doesn't match value count at row 1
CNC中
我相信這會工作(它做到了,因爲我知道如何許多記錄存在)
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + 1000;
INSERT INTO blogs SELECT * FROM tmptable;
但我該如何正確地做到這一點? (只設置主鍵(id的下一個avaliable自動增量值)(不包括PHP /一樣))
CNC中
也許這樣的事情???
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + (SELECT id FROM blogs ORDER BY id DESC LIMIT 1);
INSERT INTO blogs SELECT * FROM tmptable;
博客表的ID是身份? – TeKapa 2013-05-09 19:07:02
其主鍵,獨特和自動增量。是! – 2013-05-09 19:14:32
爲什麼不只是將您的INSERT語句更改爲使用ON DUPLICATE KEY UPDATE? – 2013-05-17 17:13:38