我有一个查询,它基本上将一个数据库中的表中的所有数据“同步”到另一个数据库中的复制表。
这是简单的查询:
TRUNCATE TABLE [Database2].[dbo].[USER_SYNC]
INSERT INTO [Database2].[dbo].[USER_SYNC]
SELECT * FROM [Database1].[dbo].[USER]
现在,经过一些研究,我考虑使用触发器来执行此操作,但是,我了解到存储过程和诸如此类的繁重查询不应在触发器中使用。
因此,每当插入、修改或删除 database1 中的记录时,我可以从 SQL 中自动运行此查询的最佳方式是什么?
如果我读到的有关触发器的信息不正确,那么我将如何为我的过程创建一个触发器?谢谢。
最佳答案
如果您需要同步表,则无需每次更新、删除或插入时都截断表。
- 创建用户表的相同副本。
- 在原始用户表上的更新、删除、插入触发器时创建。
- 在触发器更新中,一次仅删除或插入到重复表中的一行 - 更新、删除或插入到原始用户表中的行。这不会是一个繁重的查询。
更新:
关于mysql - 当INSERT/UPDATE/DELETE修改表时如何自动运行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082770/