【发布时间】:2015-03-21 22:50:02
【问题描述】:
我正在尝试在更新后增加串行列。我写了一个触发函数来帮忙。
CREATE FUNCTION "public"."update_transaction_id" () RETURNS trigger AS
$BODY$
DECLARE
curr_id integer;
BEGIN
curr_id = nextval(pg_get_serial_sequence('current_table', 'transaction_id'));
NEW.transaction_id = curr_id;
PERFORM SETVAL((SELECT pg_get_serial_sequence('current_table', 'transaction_id')), curr_id + 1, false);
RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER;
CREATE TRIGGER "trg_update_transaction_id" AFTER UPDATE
ON "current_table" FOR EACH ROW
EXECUTE PROCEDURE "public"."update_transaction_id"();
所以该列是表 current_table 中的 transaction_id。查询执行良好,并且我的更新功能确实通过此触发器运行。但是,transaction_id 列的值保持不变。这个过程有问题吗?
【问题讨论】:
标签: postgresql sql-update auto-increment