您應該能夠在import_id列上創建一個唯一鍵,並將該列指定爲可空。只有主鍵列必須被指定爲NOT NULL。
這就是說,在新表時,可以指定的可爲空IMPORT_ID列的唯一密鑰,然後從舊錶插入使用ON DUPLICATE KEY
這裏的新表時,處理任何重複鍵錯誤,是一個基本的樣例什麼我開車在:
create table your_table
(id int unsigned primary key auto_increment,
someColumn varchar(50) not null,
import_id int null,
UNIQUE KEY `importIdUidx1` (import_id)
);
insert into your_table (someColumn,import_id) values ('someValue1',1) on duplicate key update someColumn = 'someValue1';
insert into your_table (someColumn) values ('someValue2');
insert into your_table (someColumn) values ('someValue3');;
insert into your_table (someColumn,import_id) values ('someValue4',1) on duplicate key update someColumn = 'someValue4';
其中第一個和最後一個刀片從舊錶代表插入和第二和第三從別處代表插入。
希望這會有所幫助,祝你好運!
無論出於何種原因,我的印象是你不能有一個NULL唯一字段。感謝這篇文章。 –