0

postgresデータベースに新しいスキーマを作成しようとしています。このスキーマの名前は既存のテーブルに保存されています。クエリは次のようになります。

CREATE SCHEMA (SELECT name FROM table)

しかし、構文エラーが発生します。私は何が間違っているのですか?これは新しいスキーマを作成するための有効な方法ですか?この問題には他にどのような解決策がありますか?

4

2 に答える 2

1

あなたは動的SQLでそれを行うことができます:

do
$$
  declare s_name text;
begin
  -- make sure there is exactly one row in that table!
  -- otherwise you need some where condition or an aggregat to ensure that.
  SELECT name INTO s_name FROM some_table;
  execute 'create schema '|| quote_ident(s_name);
end;
$$
于 2013-03-21T15:56:16.390 に答える
-1

不可能です。有効なスキーマ名(つまり、有効なスキーマ名文字列)が必要なスキーマ構文を作成してください。あなたの場合、それは例外をスローします

********** Error **********

ERROR: syntax error at or near "("
SQL state: 42601
Character: 15
于 2013-03-21T14:04:03.827 に答える