I Funktion geschrieben, die wie folgt in die Tabelle mit dem Bau mit Einsatz mit:WITH-Klausel eine Daten modifizierende Anweisung enthalten, müssen SQL-Zustand auf der obersten Ebene sein: 0A000
CREATE OR REPLACE FUNCTION test_func()
RETURNS json AS
$BODY$
begin
return (
with t as (
insert into t(id)
select 1
returning *
)
select '{"a":"a"}'::json
);
end;
$BODY$
LANGUAGE plpgsql VOLATILE;
select test_func()
Das ist das Rück Fehler:
ERROR: WITH clause containing a data-modifying statement must be at the top level
SQL-состояние: 0A000
ausführen Wenn
with t as (
insert into t(id)
select 1
returning *
)
select '{"a":"a"}'::json
Ergebnis ohne Fehler. Warum dies stattfindet und wie kommt man dazu?
Vielen Dank! b. - ist gut für mich! – DanStopka