You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SymmetricDS:如何定义覆盖所有表但排除指定表的触发器?

解决SymmetricDS触发器排除特定表的问题

要实现覆盖所有表但排除emails表的需求,无需修改原有的通配符触发器,通过添加触发器排除规则即可实现,这是SymmetricDS官方推荐的灵活方案。

具体操作

  1. 保留你已创建的全表覆盖触发器(无需改动):
INSERT INTO sym_trigger (trigger_id, source_schema_name, source_table_name, channel_id, sync_on_update, sync_on_insert, sync_on_delete, sync_on_update_condition, sync_on_insert_condition, sync_on_delete_condition, last_update_time, create_time, sync_on_incoming_batch) VALUES ('public.tables', 'public', '*', 'default', 1, 1, 1, '1=1', '1=1', '1=1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1);
  1. 插入排除规则到sym_trigger_exclude表,指定要排除的emails表:
INSERT INTO sym_trigger_exclude (trigger_id, exclude_table_name, create_time, last_update_time)
VALUES ('public.tables', 'emails', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);

原理说明

  • 原触发器中source_table_name='*'会匹配public schema下的所有表
  • sym_trigger_exclude表的作用是从通配符触发器的匹配范围中移除指定表,通过关联原触发器的trigger_id,就能精准将emails表排除在同步范围外

不推荐的替代方案

如果不想用排除规则,也可以把原触发器的source_table_name改为具体表名的逗号分隔列表,但这种方式需要手动维护所有表名,后续新增表时还得更新触发器,灵活性远不如排除规则。

内容的提问来源于stack exchange,提问作者Yonoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:37:28