Вы должны иметь возможность создать уникальный ключ для столбца import_id и при этом указать этот столбец как обнуляемый. Только столбцы первичного ключа должны быть указаны как NOT NULL.
Тем не менее, в новой таблице вы можете указать уникальный ключ в столбце nullable 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';
, где первая и последняя вставки представляют вставки из старой таблицы, а 2-я и 3-я вставки представляют вставки из других мест.
Надеюсь, это поможет и удачи!