postgresql - 如何在 postgres 的插入触发器函数中引用 data_table

标签 postgresql plpgsql database-trigger

我正在使用 Postgresql 并尝试定义一个触发器函数。每次向特殊表中添加一行时,都应该从多个表中收集信息并在不同的行中添加一个 DS。

这是我现在得到的。

CREATE FUNCTION tf_mdo.insert_new_package()
    RETURNS trigger
    LANGUAGE 'plpgsql'
    NOT LEAKPROOF 
AS $BODY$

insert into v_triple_o_view (offerer_id, location_id) 
            Values (new.id, foreigntables.id where foreigntables.offerer = new.id)
$BODY$ ;

ALTER FUNCTION tf_mdo.insert_new_package()
    OWNER TO myadmin;

现在我想在“location_id”中插入一个来自外部表的特殊“id”。 Excatly 那个,提供者中有 new.id。

这样做的正确语法是什么?

感谢您的帮助!

最佳答案

使用 select 语句进行插入。

insert into v_triple_o_view (offerer_id, location_id) 
            SELECT new.id, f.id FROM foreigntables f where f.offerer = new.id

关于postgresql - 如何在 postgres 的插入触发器函数中引用 data_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53646599/

相关文章:

postgresql - "postgres"是 PostgreSQL 的默认和特殊用户吗?

java - 从 spring app 执行 sql 文件时,PSQLException 在“$$ DECLARE 处或附近未终止的美元引号字符串

sql-server - WAL序号无限大?

sql - 处理 PostgreSQL 异常的优雅方式?

postgresql - plpgsql 触发器 - 将一组动态 ID 传递给插入查询 (v9.6)

python - Postgresql更新导致: 'django.db.utils.OperationalError: could not access file "$libdir/postgis-2. 4": No such file or directory'

postgresql - PL/pgSQL : How to use IF NEW. <variable_column_name> <> OLD.<variable_column_name>

mysql - SQL 引用完整性触发器

oracle - 如何在oracle触发器中获取准确更新的列名称?