使用pgsql创建一个新表

时间:2013-01-08 15:03:37

标签: postgresql plpgsql

我想用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;

如何解决我的问题?不知何故,我的表名来自用户

1 个答案:

答案 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;