使用mysql将数据从一个表复制到另一个表



我在数据库中有一些记录,如果我客户删除一条记录,我使用该记录id从该表复制数据并将其插入归档表

$sqlarch = "INSERT customers_archive SELECT * FROM customers_record WHERE UCI = '8233379' "

给定数据库中两个表的名称和一个可能被误解的问题,与关于trigger的评论保持一致,也许以下可能是有用的。

要复制customers_record表,使其适合作为customers_record表的archived版本,只需使用以下命令创建一个克隆:

create table `customers_archive` like `customers_record`

,然后创建一个简单的触发器,该触发器将使用使用

删除的记录的副本填充新表:
CREATE TRIGGER `trCustomers_Archive` BEFORE DELETE ON `customers_record` FOR EACH ROW BEGIN
insert into `customers_archive` select * from `customers_record` where `UCI`=old.`UCI`;
END

如果您添加额外的列来记录正在执行的sql操作的类型,并且可能还可以记录用户,则可以将相同的逻辑扩展为在特定表上执行的任何操作的日志,这对审计目的很有用。

最新更新