Database 在触发器函数中插入Postgres

Database 在触发器函数中插入Postgres,database,postgresql,insert,Database,Postgresql,Insert,我有一个触发器函数,在表1上插入之前正在运行。在此函数中,我执行以下操作: INSERT INTO table2 VALUES(x, y, z); INSERT INTO table3 VALUES(x, a); 由于某些原因,这些INSERT语句不会运行。我知道函数正在被调用 更新: 更多信息,我的触发器如下所示: CREATE TRIGGER update_db BEFORE INSERT ON table1 FOR EACH ROW EXECUTE PROCEDURE update_al

我有一个触发器函数,在表1上插入之前正在运行。在此函数中,我执行以下操作:

INSERT INTO table2 VALUES(x, y, z);
INSERT INTO table3 VALUES(x, a);
由于某些原因,这些INSERT语句不会运行。我知道函数正在被调用

更新:

更多信息,我的触发器如下所示:

CREATE TRIGGER update_db
BEFORE INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE update_all_db();
我的程序功能做的不多。我想做的只是上面的一些陈述

提前谢谢。

您的语句后面缺少分号(

在持久化的
INSERT
语句中不包含表的列列表是一种自杀行为。如果将来更改
table2
table3
的表定义,则触发器在最坏的情况下会自动中断或销毁数据。应该是:

INSERT INTO table2(col1, col2, col3) VALUES(x, y, z);
INSERT INTO table3(col1, col2) VALUES(x, a);
但这并不是该语句“不运行”的理由。

此问题是由于您的问题之外的原因造成的。

您需要提供更多信息。从触发器函数、触发器、表定义、错误消息、Postgres版本以及最重要的有关任何其他触发器的信息开始。我要求的信息远远超过您添加的稀缺信息。没有错误消息,这是Postgres 9.2。没有其他触发因素。这是3个简单的任意表。试试最简单的模型。创建另一个没有任何触发器等的普通表,并尝试在其中插入。请显示函数
update\u all\u db()
中的实际触发器代码抱歉,我错过了问题中的分号。我会更新问题的更多细节。