2010-07-23 56 views
0

我正在開展一個關於員工的項目,其中一個要求是5年的員工應該存檔到某個文本文件並從數據庫中刪除。我在管理數據庫方面沒有太多的經驗。什麼是最好的方式去做這件事? 寫某種觸發器?數據庫存檔

感謝, NISHANT

回答

1

使用mysqldump,使用--where參數來尋找員工記錄至少5歲。你可以從mysqldump恢復。

將這些文件存儲到文件後,可以從表中刪除行。

唯一的問題是必須定期完成,文件結果將只是表中當前存在的舊記錄。但是,如果傾向於,可以將定期輸出結合到包含所有刪除的員工記錄的腳本中。

+0

嗯,你將如何避免轉儲和刪除之間的種族競爭,或者你會檢查刪除條款的轉儲? – Wrikken 2010-07-23 21:05:35

+0

@Wrikken:是=)開玩笑說,是的 - 首先轉儲,刪除之前的QA內容。 – 2010-07-23 21:12:17

+0

謝謝你們,我可以自動化這個過程嗎? – Nish 2010-07-23 23:21:13

0

當數據沒有改變時,您不能使用觸發器對其進行操作。 (好吧,你可以創建一個觸發器,在桌子上做出不合理的事情,但我會建議非常強烈地反對它)。

創建一個腳本,你想要做什麼(選擇員工,從5年前保存到文件,運行已保存的確切員工刪除查詢,員工你完成以後,因爲它可以某些記錄只是在選擇它們之間超越了標記&將它們保存到文件中)。

每隔N次運行一次,N是合理的數量,您可能會在'一年後'超出標準(取決於每天,每週或每月最有可能的情況)。將它作爲服務器上的cron進行安排,並在確認它仍在工作的同時進行檢查。