我正在尝试使用 python 触发器过程实现类似于复制的东西。
程序
CREATE OR REPLACE FUNCTION foo.send_payload()
RETURNS trigger AS
$$
import json, zmq
try:
payload = json.dumps(TD)
ctx = zmq.Context()
socket = ctx.socket(zmq.PUSH)
socket.connect("ipc:///tmp/feeds/0")
socket.send(payload)
socket.close()
except:
pass
$$
LANGUAGE plpython VOLATILE;
扳机
CREATE TRIGGER foo.my_trigger
AFTER INSERT
ON foo.my_table
FOR EACH ROW
EXECUTE PROCEDURE foo.send_payload();
这确实有效,但效率不高。行是批量插入的,我想重用套接字来发送所有行。但是,当我执行语句级触发器时,我无权访问这些行。
我正在考虑定义一个序列,该序列将是最后处理的行 id。然后使用它SELECT
在语句级触发器内部获取过程中的所有数据。问题是似乎没有一种方法可以在不增加序列值的情况下获取它。
关于如何解决这个问题的任何建议?