Trigger

將 MariaDB 配置為僅記錄行刪除

  • October 22, 2015

我正在調查 Magento 網站上間歇性失去的一些行/表,當然錯誤日誌中沒有條目。(我懷疑 Magento 查詢/規則或人為錯誤可能是罪魁禍首)我知道我可以啟用正常日誌,但我不想記錄所有內容,因為該站點每天處理大量銷售並且日誌會很大.

我希望有人可能知道一種配置通用日誌或日誌表以僅記錄DELETE​​命令的方法。對您可能有更好的解決方法的任何建議持開放態度。

這主要是從文件中複製的:

觸發器範例 - 記錄刪除

場景:我們希望保留一個日誌文件,其中包含已從 BOOKS 表中刪除的行的數據。這是完成此操作的觸發器定義:

CREATE TRIGGER Books_Delete
AFTER DELETE ON Books                 /* See note 1 */
 REFERENCING OLD ROW AS Old          /* See note 2 */
FOR EACH ROW                          /* See note 3 */
 INSERT INTO Books_Deleted_Log       /* See note 4 */
     VALUES (Old.title);             /* See note 5 */
  1. Trigger 操作必須是AFTER,因為 Trigger 操作包括 SQL 數據更改語句。您還應該Books用您的表名替換
  2. 對於舊行,通常使用別名“Old”或“Old_Row”。
  3. DELETE影響零行的語句不會出現日誌。
  4. 替換Books_Deleted_Log為您將刪除的行記錄到的表的名稱。確保此表包含記錄所需資訊所需的所有列。
  5. OLD是單個舊行的別名,從該舊行的列OLD.TITLE派生的標量值也是如此。TITLE您必須更改Title為要跟踪的列。您還可以按照Old.<column name>使用逗號作為分隔符的模式添加更多列。

引用自:https://dba.stackexchange.com/questions/118844