Перенос данных из одной таблицы MySQL в другую - PullRequest
1 голос
/ 22 ноября 2011

У меня есть база данных, в которой есть таблица note_current и таблица notices_archive.Как часть процесса выхода пользователя из системы, я хочу переместить все связанные с ними уведомления из текущей таблицы в архив.

В моем коде приложения PHP я в настоящее время делаю транзакцию, в которой я копирую уведомления, изатем удалите строки в таблице notices_current, если при копировании не было ошибок.Однако мне интересно, есть ли в MySQL какая-то врожденная функция или метод для простого перемещения уведомлений из одной таблицы в другую.Если это так, он увидит, что это будет более эффективно, чем моя текущая реализация.

Ответы [ 2 ]

4 голосов
/ 22 ноября 2011

Для этого нет ни одной встроенной функции, но если вы сейчас выполняете итерацию по всем строкам, то что-то вроде этого может быть намного эффективнее:

BEGIN;
INSERT INTO notices_archive SELECT * FROM notice_current WHERE user_id=%;
DELETE FROM notice_current WHERE user_id=%;
COMMIT;
0 голосов
/ 22 ноября 2011

вы можете использовать инструменты phpmyadmin для этого. Зайдите в phpmy admin, затем выберите исходную базу данных, нажмите на вкладку операции, выберите copy и настройте параметры, затем позвольте phpmyadmin выполнять свою работу: D

...