如何将 DELETE 上的数据插入到不同的数据库中?

问题描述 投票:0回答:1

我的表在 Material.db 中保存材料详细信息。材料处理完毕后,其详细信息将被删除,并插入新的材料详细信息。在删除之前,我希望将此数据存储在存档数据库 archive.db 中。

如何使用触发器来实现这一点?为了避免更改我的应用程序,我想要一个 SQLite 解决方案,但我不知道触发器是否可以插入到不同的数据库中。

sql sqlite triggers archive
1个回答
0
投票

触发器通常无法执行您想要的操作,但临时触发器可以。您可以拥有从要存档的表中删除的连接附加存档数据库,然后创建一个临时触发器,例如:

CREATE TEMP TRIGGER name AFTER DELETE ON original_table BEGIN
INSERT INTO archive_table VALUES (old.column_name1, old.column_name2, etc.);
END;

触发器中的归档表引用不能是完全限定的表名(如

attached_db.archive_table
),并且每次打开数据库时都需要创建触发器(与常规触发器不同)。

© www.soinside.com 2019 - 2024. All rights reserved.