私は2つのテーブルを持っています。表1および表2。テーブル1のみが入力され、トリガーによってテーブル2の値が入力されます。
だから、私はこのようなトリガーを持っています、
CREATE OR REPLACE FUNCTION function_copy() RETURNS TRIGGER AS
$BODY$
BEGIN
INSERT INTO table2 (name) values ((select unnest(xpath('/attendee/bio/name/text()',data)) from table1));
RETURN new;
END;
$BODY$
language plpgsql;
トリガー機能
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
したがって、table1に複数の行を挿入すると、このエラーが発生し続けます
エラー:式として使用されるサブクエリによって返される複数の行
使用しないでくださいinsert . . . values
。使用insert . . . select
:
INSERT INTO table2 (name)
select unnest(xpath('/attendee/bio/name/text()', data))
from table1;
このvalues
句は、値が1つだけであることを前提としています。クエリは、挿入する行が複数あることを示しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加