0

LASTVAL()関数に問題があります。トリガーがあります:

CREATE OR REPLACE FUNCTION schema_name.function_name() RETURNS TRIGGER AS
  $BODY$
  DECLARE
    registry_id bigint;
  BEGIN
    INSERT INTO schema_name.table_name(column1, column2) VALUES (value1, value2);
    SELECT LASTVAR() INTO registry_id;
    ...

トリガーが起動されると、次のエラーが表示されます。

ERROR:  function lastvar() does not exist
LINE 1: SELECT LASTVAR()
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
QUERY:  SELECT LASTVAR()
CONTEXT:  PL/pgSQL function "function_name" line 5 at SQL statement

テーブルには、DEFAULT 値として SEQUENCE を持つ PK 列があります。

...
table_name_id bigint NOT NULL DEFAULT nextval('table_name_seq'::regclass),
...
4

1 に答える 1

0

LASTVAL() ではなく LASTVAR() を書きました ( LではなくR )。

于 2012-07-06T15:53:04.337 に答える