0

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;

どうすれば問題を解決できますか?どういうわけか私のテーブルの名前はユーザーから来ている

4

1 に答える 1

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;
于 2013-01-08T15:07:17.323 に答える