我有一个更新触发器,应该删除行OLD*,但我不知道表结构。所以我尝试使用 information_schema 来获取列名,但它真的很慢。
是否可以在不了解表结构的情况下执行删除?
UPD: 触发器应该接受任何表的行,因此触发器函数在调用之前无法知道该表的任何信息。
UPD2:
这对我很有效:
EXECUTE 'DELETE FROM ' || tablename || ' WHERE ctid=$1' USING OLD.ctid;
我有一个更新触发器,应该删除行OLD*,但我不知道表结构。所以我尝试使用 information_schema 来获取列名,但它真的很慢。
是否可以在不了解表结构的情况下执行删除?
UPD: 触发器应该接受任何表的行,因此触发器函数在调用之前无法知道该表的任何信息。
UPD2:
这对我很有效:
EXECUTE 'DELETE FROM ' || tablename || ' WHERE ctid=$1' USING OLD.ctid;