Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 执行字符串Postgres_Database_Postgresql_Triggers_Plpgsql_Postgresql 9.1 - Fatal编程技术网

Database 执行字符串Postgres

Database 执行字符串Postgres,database,postgresql,triggers,plpgsql,postgresql-9.1,Database,Postgresql,Triggers,Plpgsql,Postgresql 9.1,我无法使此代码正常工作。这是作为插入、更新或删除触发器的结果执行的。将从多个表触发器调用相同的代码。因此,我不知道表名是什么或它们的列是什么。有什么想法吗 EXECUTE format('INSERT INTO %s VALUES %s', _tbl, (OLD).*); 错误是关于字符串没有用引号括起来: ERROR: column "bangor" does not exist LINE 1: INSERT INTO sample_test_table_deletes VALUES (3

我无法使此代码正常工作。这是作为插入、更新或删除触发器的结果执行的。将从多个表触发器调用相同的代码。因此,我不知道表名是什么或它们的列是什么。有什么想法吗

EXECUTE format('INSERT INTO %s VALUES %s', _tbl, (OLD).*);
错误是关于字符串没有用引号括起来:

ERROR:  column "bangor" does not exist
LINE 1: INSERT INTO sample_test_table_deletes VALUES (3,bangor,D,"20...
                                                          ^
另一方面,以下工作:

INSERT INTO my_table VALUES((OLD).*);
也就是说,当查询不是通过执行块时

更新(触发代码):


特殊变量
OLD
EXECUTE
中不可见。(也不是函数范围内的任何其他变量。)使用构造通过
传入值:

EXECUTE format('INSERT INTO %I VALUES (($1).*)', _tbl)
USING OLD;
另外,使用
%I
作为标识符,而不是
%s

详情:


您的错误是什么?
\u tbl
com来自哪里?触发器的完整代码是什么?嗨。谢谢我添加了错误。那么触发代码呢?请不要与我们玩20个问题…添加了您编写的触发器代码:
这是由于删除触发器而执行的。
但是您有一个
ELSE
小树枝用于
插入
/
更新
。。这是完全无效的。请澄清你想做什么。我怀疑每个可能的原始表都有一列
mod_op
?我建议你开始一个新问题。把这个问题集中在所问的主题上,把剩下的问题放在一个新的问题上。但是你增加的触发函数还有几个严重的问题。嗨,欧文。你能提出改进建议吗?他们是否需要回答不同的问题?谢谢。@picmate:我回答了你的问题,然后看到了你后来添加的函数中的问题。这里的政策是每一个问题问一个问题,让事情清楚明了,对公众有用。嗨,埃尔文。我开始问一个新问题:。希望你能看看,并提出一些建议。
EXECUTE format('INSERT INTO %I VALUES (($1).*)', _tbl)
USING OLD;