2013-01-09 43 views
0

UUID添加到表我想添加到UUID使用动态sql.Hier表是我的代码:错误,同时通过动态SQL

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”(代孕)VALUES(ed520ad0-5aba-11e2-961b-1c4bd605a98d) 语法错误:»ABA«这是我的UID

如果我不使用动态SQL它可以在表中添加UUID。请说我为什么发生这个错误? 谢谢

回答

1

最简单的是正义之举的select到字符串中:

BEGIN 
tablename:=tblname; 
execute 'INSERT INTO public."'||tablename||'"(surrogate) select uuid_generate_v1()'; 
END