對於SQL專家來說,這可能非常容易,但SQL(儘管我可以使用它)實際上並不是我的東西。保留表格的影子副本,同時保留原來的記錄
我在DB中有一張表。 (我們稱之爲計算機)
約10,000行。 25列。 1個唯一鍵:列ASSETS。
偶爾外部程序會刪除一個或多個行,但不應該這樣做,因爲我們仍然需要從這些行中知道一些信息,然後才能真正刪除這些項目。
我們無法控制外部應用程序的行爲,所以我們想出了一個不同的想法:
我們要創建第二個相同的表(COMPUTERS_BACKUP),並初步形成了具有單對單的填寫此計算機的副本。
之後,每天一次將新記錄從計算機複製到COMPUTERS_BACKUP,並更新COMPUTERS_BACKUP中COMPUTERS中原始文件已更改(ASSETS列永遠不會更改)的那些記錄。
這樣我們保持從計算機中刪除記錄的最後一個狀態。
有人可以提供可以安排每天運行一次的存儲過程的代碼嗎?我大概可以自己弄清楚這一點,但這需要幾個小時左右的時間,而且我非常緊張。
爲什麼不添加'DELETE'觸發器來記錄刪除的行?您可能可以在「APP_NAME()」上過濾僅記錄有問題的應用程序刪除的內容。 –
是否曾經從應用程序中的表中刪除行? – peterm
@MartinSmith這也是我的第一本能,但是......我沒有告訴洞的故事:表格實際上被截斷,然後被外部應用程序重新填充。愚蠢的設計,但我們必須忍受它。 – Tonny