Postgresql 将触发器中创建的记录链接到触发器源
我有两个表,Postgresql 将触发器中创建的记录链接到触发器源,postgresql,triggers,Postgresql,Triggers,我有两个表,contact和userContact有一个名为user\u id的字段,该字段(顾名思义)存储属于该联系人的用户的id 用户记录由联系人上的插入前触发器创建。这非常有效,但是我一直在尝试更新联系人的user\u id字段。我试着这样做: CREATE OR REPLACE FUNCTION create_user() RETURNS trigger AS $BODY$ BEGIN NEW.user_id = INSERT INTO user(name)
contact
和user
Contact
有一个名为user\u id
的字段,该字段(顾名思义)存储属于该联系人的用户的id
用户
记录由联系人上的插入前触发器创建。这非常有效,但是我一直在尝试更新联系人的user\u id
字段。我试着这样做:
CREATE OR REPLACE FUNCTION create_user()
RETURNS trigger AS
$BODY$
BEGIN
NEW.user_id = INSERT INTO user(name)
VALUES (NEW.name)
RETURNING id;
RETURN NEW;
END;
$BODY$ LANGUAGE PLPGSQL;
但它不起作用
如何将新创建的记录链接到触发器的源 您需要
INTO
子句,该子句特定于PL/pgSQL,与INSERT-INTO
或SELECT-INTO
无关:
INSERT INTO user(name)
VALUES (NEW.name)
RETURNING id
INTO STRICT NEW.user_id;
转换为STRICT时
会导致在没有插入一个结果时引发错误。。。。但它不起作用。错误消息是。。。?PostgreSQL版本?问题是语法完全错误,我发布它只是为了说明我的意图。下次我会尽量说得更清楚:)谢谢!这就是我需要的。