Ошибка, добавляя UUID в стол через динамический sql

Я хочу добавить uuid в стол, используя динамический sql. Hier - мой Кодекс:

CREATE OR REPLACE FUNCTION "Surrogate_gen"(tblname text) RETURNS void AS
$BODY$DECLARE 
uid UUID;
tablename text;
BEGIN
uid:=(select uuid_generate_v1());
tablename:=tblname;
execute 'INSERT INTO public."'||tablename||'"(surrogate) VALUES('||uid||')';
END
$BODY$
LANGUAGE plpgsql

но ошибка произошла как это: общественность INSERT INTO. "produkt" (суррогатные) ЦЕННОСТИ (ed520ad0 5aba 11e2 961b 1c4bd605a98d) Syntaxerror»: ткань из верблюжьей шерсти «, который находится в моем uid

Если я не использую Динамический sql, возможно добавить uuid в этом столе. Пожалуйста, сказал бы меня, почему эта ошибка происходит? Спасибо

0
добавлено
Просмотры: 2
nl ja de

1 ответы

Самое легкое должно просто переместиться , избранный к внутренней части последовательность:

BEGIN
tablename:=tblname;
execute 'INSERT INTO public."'||tablename||'"(surrogate) select uuid_generate_v1()';
END
1
добавлено