Задавайте вопросы, мы ответим
Вы не зашли.
Задача - нужно скопировать определенные строки из одной таблицы в другую. Структуры обеих таблиц идентичны. Данные с индексами во второй таблице уже есть, поэтому в ней достаточно обновить значения полей значениями полей первой таблицы, в случае если значения не идентичны.
Я нашел такой пример:
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)
Неактивен