如果我的客户删除一条记录,我在数据库中有一些记录,我使用该记录 ID 从该表复制数据并将其插入到存档表中
$sqlarch = "INSERT customers_archive SELECT * FROM customers_record WHERE UCI = '8233379' "
仅给出数据库中两个表的名称以及一个可能被误解的问题,与有关
trigger
的评论一致,也许以下内容可能有用。
要复制
customers_record
表,使其适合充当 archived
表的 customers_record
版本,您可以简单地使用以下命令创建克隆:
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 操作的类型以及可能用于审计目的的用户,则可以扩展此相同的逻辑以充当在特定表上执行的任何操作的日志。
要将一个表中的所有数据插入到另一表中,您可以使用以下查询:
插入 tableName_to_which_data_inserting(column1,column2,.....) 从 tableName_from_which_data_inserting
选择 col1,col2,....