當使用SQL語法UPDATE更新資料時 如何讓SQL自動備份被修改前的資料
當使用SQL語法UPDATE更新資料時 如何讓SQL自動備份被修改前的資料
資料來源: Copilot
MSSQL
01.創建備份表:首先,創建一個備份表來存儲被修改前的資料
CREATE TABLE BackupTable ( ID INT PRIMARY KEY, Column1 NVARCHAR(50), Column2 NVARCHAR(50), -- 其他欄位 BackupTime DATETIME DEFAULT GETDATE() );
02.創建觸發器:創建一個觸發器,在每次執行 UPDATE 操作時,將被修改前的資料插入到備份表中。
CREATE TRIGGER trgBackupBeforeUpdate ON OriginalTable FOR UPDATE AS BEGIN INSERT INTO BackupTable (ID, Column1, Column2, BackupTime) SELECT ID, Column1, Column2, GETDATE() FROM deleted; END;
MYSQL
01.創建備份表:首先,創建一個備份表來存儲被修改前的資料
CREATE TABLE BackupTable ( ID INT PRIMARY KEY, Column1 VARCHAR(50), Column2 VARCHAR(50), -- 其他欄位 BackupTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
02.創建觸發器:創建一個觸發器,在每次執行 UPDATE 操作時,將被修改前的資料插入到備份表中。
DELIMITER // CREATE TRIGGER trgBackupBeforeUpdate BEFORE UPDATE ON OriginalTable FOR EACH ROW BEGIN INSERT INTO BackupTable (ID, Column1, Column2, BackupTime) VALUES (OLD.ID, OLD.Column1, OLD.Column2, CURRENT_TIMESTAMP); END// DELIMITER ;
2 thoughts on “當使用SQL語法UPDATE更新資料時 如何讓SQL自動備份被修改前的資料”
ChatGPT 建議使用者修改前手動備份,藉此檢查WHERE的條件
換個角度想 先用 SELECT語法先查詢 看看有幾筆資料也不錯
INSERT INTO backup_table_name (id, column1, column2, ..., columnN, modified_at)
SELECT id, column1, column2, ..., columnN, NOW()
FROM your_table_name
WHERE ;
預防/防呆 SQL 更新資料 錯誤 補救措施 備份