當使用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 更新資料 錯誤 補救措施 備份