архив базы данных - PullRequest
       3

архив базы данных

0 голосов
/ 24 июля 2010

Я работаю над проектом о сотрудниках, и одно из требований состоит в том, что 5-летние сотрудники должны быть помещены в текстовый файл и удалены из базы данных. У меня нет такого большого опыта в администрировании БД. Каков наилучший способ сделать это? Написать триггеры какого-нибудь рода?

Спасибо, Nishant

Ответы [ 2 ]

1 голос
/ 24 июля 2010

Используйте mysqldump , используя параметр --where для поиска записей сотрудников, которым не менее 5 лет.Вы можете восстановить из mysqldump.

После того, как вы сохранили их в файле, вы можете удалить строки из таблицы.

Единственная проблема заключается в том, что это нужно делать периодически, и файл приводит кбудут только старые записи, которые в настоящее время существуют в таблице.Но если вы склонны, вы можете объединить периодический вывод в сценарий, содержащий все удаленные записи сотрудников.

0 голосов
/ 24 июля 2010

Когда данные не меняются, вы не можете использовать триггеры, чтобы что-то с ними делать. (Ну, вы могли бы создать триггер, который делает совершенно неуместные вещи на изменяющейся таблице, но я бы настоятельно советовал против этого).

Создайте сценарий, который делает то, что вы хотите (выберите сотрудников, сохраните в файл, запустите запрос на удаление для тех сотрудников, которых вы сохранили, НЕ сотрудников 5 лет назад после того, как вы закончили, как может случиться так, что некоторые записи просто перешагнули отметку между их выбором и сохранением в файл).

Запускайте это каждый раз N, при этом N - разумная сумма, которую вы можете перешагнуть через отметку «после ровно одного года» (в зависимости от обстоятельств, наиболее вероятных ежедневно, еженедельно или ежемесячно). Запланируйте это как cron на сервере и проверяйте его время от времени, чтобы убедиться, что он все еще работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...