Postgresql 输入语法PLPGSQL脚本无效

Postgresql 输入语法PLPGSQL脚本无效,postgresql,plpgsql,Postgresql,Plpgsql,我有一个触发器函数,它将审核表上的事务 CREATE or REPLACE FUNCTION audit() returns trigger language plpgsql as $$ begin EXECUTE FORMAT ('INSERT INTO %I.audit VALUES (%L,%L,%L)',TG_TABLE_SCHEMA, TG_TABLE_NAME, TG_OP, now()); RETURN NEW; end; $$ 然而,我不断得到“错误:整数的输入语法无

我有一个触发器函数,它将审核表上的事务

CREATE or REPLACE FUNCTION audit()
  returns trigger
  language plpgsql
as $$
begin
EXECUTE FORMAT ('INSERT INTO %I.audit VALUES (%L,%L,%L)',TG_TABLE_SCHEMA, TG_TABLE_NAME, TG_OP, now());
 RETURN NEW;
end;
$$
然而,我不断得到“错误:整数的输入语法无效:”triggerTable“ 其中:PL/pgSQL函数audit()执行语句的第3行“(其中触发器表是触发此函数的表)


我假设我的执行查询的语法是错误的,但是我不能确定在哪里。欢迎任何反馈

您正在为三个占位符传递四个值。我假设“audit”应该是TG\u TABLE\u NAME的占位符。

您正在为三个占位符传递四个值。我假设“audit”应该是TG\u TABLE\u NAME的占位符。

您正在为三个占位符传递四个值。我假设“audit”应该是TG\u TABLE\u NAME的占位符。

您正在为三个占位符传递四个值。我假设“audit”应该是TG\u TABLE\u NAME的占位符。

问题在于转换到目标表。某些目标列是整数,但您将文本推送到那里。同样的错误如下:

postgres=# create table foo(a int);
CREATE TABLE

postgres=# insert into foo values('AHOJ');
ERROR:  invalid input syntax for integer: "AHOJ"
LINE 1: insert into foo values('AHOJ');
                               ^

看起来审核表的第一列是整数(可能是id),但您将表名推到了那里。

问题在于转换到目标表。某些目标列是整数,但您将文本推送到那里。同样的错误如下:

postgres=# create table foo(a int);
CREATE TABLE

postgres=# insert into foo values('AHOJ');
ERROR:  invalid input syntax for integer: "AHOJ"
LINE 1: insert into foo values('AHOJ');
                               ^

看起来审核表的第一列是整数(可能是id),但您将表名推到了那里。

问题在于转换到目标表。某些目标列是整数,但您将文本推送到那里。同样的错误如下:

postgres=# create table foo(a int);
CREATE TABLE

postgres=# insert into foo values('AHOJ');
ERROR:  invalid input syntax for integer: "AHOJ"
LINE 1: insert into foo values('AHOJ');
                               ^

看起来审核表的第一列是整数(可能是id),但您将表名推到了那里。

问题在于转换到目标表。某些目标列是整数,但您将文本推送到那里。同样的错误如下:

postgres=# create table foo(a int);
CREATE TABLE

postgres=# insert into foo values('AHOJ');
ERROR:  invalid input syntax for integer: "AHOJ"
LINE 1: insert into foo values('AHOJ');
                               ^

看起来审计表的第一列是整数(可能是id),但您将表名推到了那里。

代表我犯了一个愚蠢的错误。将插入更新为具有三个值;但是我得到了这个错误。错误:整数“convention”的输入语法无效,其中:PL/pgSQL函数audit()位于EXECUTE语句的第3行代表我犯了一个愚蠢的错误。将插入更新为具有三个值;但是我得到了这个错误。错误:整数“convention”的输入语法无效,其中:PL/pgSQL函数audit()位于EXECUTE语句的第3行代表我犯了一个愚蠢的错误。将插入更新为具有三个值;但是我得到了这个错误。错误:整数“convention”的输入语法无效,其中:PL/pgSQL函数audit()位于EXECUTE语句的第3行代表我犯了一个愚蠢的错误。将插入更新为具有三个值;但是我得到了这个错误。错误:整数的输入语法无效:“convention”其中:PL/pgSQL function audit()在EXECUTE语句的第3行谢谢,我有一个自动增量ID字段,但没有包括在内。谢谢,我有一个自动增量ID字段,但没有包括在内。谢谢,我有一个自动增量ID字段,但没有包括在内。