SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.09.2007 14:44:50

Scorpion
Участник
Зарегистрирован: 22.09.2007
Сообщений: 2

Дублирующие записи

Всем привет.
Вот такая проблема.
Есть 2 таблицы.
Одна из них постоянно обновляется и надо сделать так, чтобы во вторую таблицу из первой записывались только те данные, которых еще в ней нет.
Сравнение можно проводить по одному полю.
Кто подскажет как это сделать?

Неактивен

 

#2 22.09.2007 14:54:13

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Дублирующие записи


INSERT INTO table_2 SELECT t1.* FROM table_1 t1 LEFT JOIN table_2 t2 ON t1.one_field = t2.one_field WHERE t2.one_field IS NULL;

Неактивен

 

#3 22.09.2007 15:46:36

Scorpion
Участник
Зарегистрирован: 22.09.2007
Сообщений: 2

Re: Дублирующие записи

Спасибо, попробую

Неактивен

 

#4 23.09.2007 10:17:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Дублирующие записи

Scorpion написал:

Одна из них постоянно обновляется

Если изменение идет типа UPDATE table_1 SET one_field = ... WHERE ... и есть поле auto_increment  (не one_field), то будет Duplicate key error. Для устранения, нужно вместо t1.* писать перечисление полей за исключением primary key.

Если `table_1`.`one_field` не уникально, то при отсутствии в `table_2`.`one_field` данного значения будут записаны все дубликаты, имеющиеся в данный момент, т.е. результат зависит от времени выполнения запроса. Например, при пустой table_2 будут записаны все дубликаты.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson