我想用plpgsql创建一个新表,但是我希望用户给出表的名称。我的代码生成一个名为 tbname 的表
这是我的代码:
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 :(得分: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;