我有两个服务,我想在数据库表中保持同步,所以如果service1更新table1,那么我也想更新table2。如果service2更新table2,那么我也想更新table1。
我可以在table1上写一个触发器来更新table2,然后在table2上再次触发一个触发器来更新table1吗?这会创建一个循环吗?
答案 0 :(得分:0)
我可以在table1上写一个触发器来更新table2并再次触发一个触发器 在table2上更新table1?这会创建一个循环吗?
这取决于服务器选项nested triggers
nested triggers
选项控制AFTER触发器是否可以 级联。也就是说,执行启动另一个触发器的操作, 它会启动另一个触发器,依此类推。当嵌套触发器是 设置为0,AFTER触发器无法级联。 设置嵌套触发器时 为1(默认值),AFTER触发器可级联到多达32个 级别。无论设置如何,都可以嵌套INSTEAD OF触发器 这个选项。
但是你可以避免级联,无论如何都要在你的触发器中编写这段代码作为第一句话:
IF TRIGGER_NESTLEVEL() > 1 RETURN;