2013-01-08 15 views
0

我想創建一個PLPGSQL一個新表的新表,但我想用戶給出table.My代碼名稱生成表tbname名創建的pgsql

這是我的代碼:

CREATE OR REPLACE FUNCTION "Object_gen"(tablename text) 
    RETURNS void AS 
$BODY$DECLARE 
tbname text; 
BEGIN 
tbname:=tablename; 
CREATE TABLE tbname(Surrogat uuid); 
END$BODY$ 
    LANGUAGE plpgsql; 

我該如何解決我的問題?不知怎的,我的表的名字來自於用戶

回答

0

你需要使用動態SQL:

CREATE OR REPLACE FUNCTION "Object_gen"(tablename text) 
    RETURNS void AS 
$BODY$ 
BEGIN 
    execute 'CREATE TABLE '||tablename||' (Surrogat uuid)'; 
END 
$BODY$ 
LANGUAGE plpgsql;