insert -- select

Tsep

Guest
insert -- select

Есть 2 таблицы, a1, a2. как из a1 перенести поля в a2, не допуская повторений. то есть если записи нет в a2 то делаем insert из а1, а если есть то ничего не делаем.

insert into a2 (f1) select distinct f2 from a1; - вот это дело добаляет все подряд... как его изменить?
 

Апельсин

Оранжевое создание
INSERT IGNORE и уникальный ключ на поля по которым должно проверяться наличие записи в a2.
 

Tsep

Guest
///INSERT IGNORE
что-то непонятно в мануале про него написано. как указывать ключ на поля...?
что-типа
insert ignore a2 (f1) select distinct f2 from a1 , если f1 является уникальным для a2?
 

Tsep

Guest
кажется заработало, когда сделал это поле уникальным:)
Спасибо!
 

Апельсин

Оранжевое создание
ключ на до не указывать, а создавать. ALTER TABLE или CREATE INDEX.

IGNORE это ключевое слово, которое указыват, что если при добавлении есть совпадение уникальных значений, то они просто игнорируются, пропускаются, и инсерт продолжает выполняться дальше.
 
Сверху