用数据库创建一个DELECT/UPDATE触发器,当删除(更新)数据时,先备份该数据到备份表
时间: 2023-06-16 18:03:05 浏览: 140
好的,下面是一个示例代码,可以在 MySQL 数据库中创建一个触发器,实现在删除或更新数据时备份数据到备份表:
```
-- 创建备份表,用于存储删除或更新的数据
CREATE TABLE `backup_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` text,
`operation` varchar(10),
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建删除数据的触发器
CREATE TRIGGER `delete_trigger` BEFORE DELETE ON `original_table`
FOR EACH ROW BEGIN
INSERT INTO `backup_table` (`data`, `operation`)
VALUES (OLD.data, 'DELETE');
END;
-- 创建更新数据的触发器
CREATE TRIGGER `update_trigger` BEFORE UPDATE ON `original_table`
FOR EACH ROW BEGIN
INSERT INTO `backup_table` (`data`, `operation`)
VALUES (OLD.data, 'UPDATE');
END;
```
触发器会在删除或更新原始表中的数据之前执行,在备份表中插入一条记录,包含被删除或更新的数据以及操作类型(DELETE 或 UPDATE)。这样可以保证数据的备份和恢复。请注意替换示例中的 `original_table` 和 `backup_table` 表名为实际的表名。
阅读全文