2013-01-09 45 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