SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.09.2012 01:31:33

gif-t
Завсегдатай
Зарегистрирован: 08.08.2011
Сообщений: 74

Копирование строк из одной таблицы в другую

Задача - нужно скопировать определенные строки из одной таблицы в другую. Структуры обеих таблиц идентичны. Данные с индексами во второй таблице уже есть, поэтому в ней достаточно обновить значения полей значениями полей первой таблицы, в случае если значения не идентичны.
Я нашел такой пример:

REPLACE INTO table (*) VALUES(SELECT * FROM table WHERE ...);

но он не оптимален, так как строки с соответствующими индексами уже есть во второй таблице и соответственно достаточно обновить отличающиеся поля, а REPLACE mysql'ом раскладывается на два запроса - delete и insert.
Мне кажется правильнее использовать конструкции UPDATE или INSERT ... ON DUPLICATE KEY UPDATE, которые должны обновить только те поля, данные в которых не идентичны вставляемым. Вопросы:
1) Можно ли составить запрос с UPDATE или хотябы с INSERT ... ON DUPLICATE KEY UPDATE, в котором поля не перечисляются?
2) Может для решения такой задачи есть что-то еще, какая та специальная ускоряющая функция?

Отредактированно gif-t (07.09.2012 03:14:46)

Неактивен

 

Board footer

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