在AWS Aurora上运行Postgres 9.6
我有一张桌子,我正在捕捉历史。我使用触发器将UPDATE和DELETE更改为INSERT,并添加了一个操作列,其中包含记录更改的日期。
问题是一些ETL代码,我不控制TRUNCATES并重新填充表格。我想要的是一种覆盖TRUNCATE和'soft'截断任何活动行的机制。 Postgres仅支持视图上的INSTEAD OF触发器,并且您不能在视图上使用TRUNCATE触发器。所以net - 没有INSTEAD OF TRUNCATE触发器。
我做了什么: BEFORE TRUNCATE触发器将表中的所有数据移动到新表 让截断截断运行 AFTER TRUNCATE触发器将所有数据移回并插入新的软截断行。
我更喜欢一种解决方案,我不需要移动这么多数据。
我没有ETL代码,让ETL开发人员更改代码会涉及建立一个新项目,测试...