簡體   English   中英

當新記錄進入時,從mysql表中移動舊記錄

[英]Move old records from a mysql table when new ones come in

注意,我只能使用SQL來構建它。

我有一個名為Stream的表。 當我從外部來源獲取新數據(批量插入)時,它們會臨時存儲在流中(engine =內存)。 流表中的每一行都有一個時間戳。 隨着新插入的發生,我需要將所有30分鍾之前的數據移動到歷史記錄表(engine = myISAM)。 最好的方法是什么? 我有點想使用觸發器,但不知道這是否是最佳解決方案。 我想到了一個觸發器,該觸發器可以在插入時從表中刪除舊數據。 但是,由於新數據以相同的時間戳進行批量處理,因此我不想為每個插入操作遍歷整個表。 批次插入完成后,我希望它執行刪除操作。 如果我使用的是python之類的編程語言來插入,更新,則可以使用它來跟蹤應用程序狀態。 但是由於除了SQL之外我無法使用其他任何東西,所以我已經碰壁了。

我寧願使用mysql內置的任務計划程序,並每30分鍾安排一次事件,以將30分鍾以上的記錄移動到另一個表中。 在批處理插入期間,您可以暫停事件以防止歸檔操作與批處理插入一致。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM