我试图用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
。
问题是,似乎没有一种获取序列值而不增加它的方法。
有关如何解决此问题的任何建议吗?