0
これは基本的に、挿入または更新が既存のものから1メートル以内にある場合に別のテーブルを更新するトリガーを作成しようとしています。ifステートメントでトリガーでSQLテーブルのエイリアス構文を修正します
if文にFROM句がないため、何も挿入できないため、正しく呼び出す方法がわかりません。
私はPostgreSQLでこれを行う方法を以下
CREATE TRIGGER access_node_aiu
AFTER INSERT OR UPDATE
ON schemab.table
FOR EACH ROW
EXECUTE PROCEDURE schemab.trigegr();
CREATE OR REPLACE FUNCTION schemab.trigger()
RETURNS trigger AS
$BODY$
BEGIN
if st_distance(new.geom, a.geom) < 1 then
INSERT INTO schemab.overlap
SELECT nextval('schemab.overlap_id_seq'::regclass), a.node_id, new.node_id, a.date, now(), st_distance(a.geom, new.geom), new.geom
FROM schemab.table a;
end if;
RETURN new;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
を得ましたか。
になぜ 'WHERE'に' IF'ことを変更しませんか? –
@ŁukaszKamiński私はエラーが発生しました:「どこで」または「近く」で構文エラーが発生しました – Luffydude
私は動作するはずの構文で自分の答えを投稿しました。 –