PostgreSQL システムに依存するデータベースがあり、それを維持しているので、テーブルと全体的なスキームを変更したいと考えています。このため、古いテーブルの名前を変更して、接頭辞としてアンダースコアを付けることを考えました。しかし、これは機能していません:
DROP TABLE IF EXISTS _my_table; -- table does not exists, this does nothing
ALTER TABLE my_table
RENAME TO _my_table;
クエリの結果は次のとおりです。
注意: テーブル "_my_table" は存在しません。スキップします エラー:
タイプ "_my_table" は既に存在します
********** エラー **********エラー: タイプ "_my_table" は既に存在します SQL 状態: 42710
「_my_table」テーブルは偽名ですが、実際に「_my_table」テーブルを作成して上記の同じスクリプトを実行すると、このエラーが再現されます。
pgAdmin III を使用してデータベース テーブルにアクセスしていますが、その「名前の変更」操作を使用すると、同じエラーが発生します。テーブル変更メソッドの postgresql ドキュメントでは、この特定の問題について明示的に説明されていません: http://www.postgresql.org/docs/9.3/static/sql-altertable.html
'_' の代わりに' backup ' のようなプレフィックスを使用する必要は本当にありますか? または、名前を変更することは可能でしょうか。私の唯一の関心は、テーブル名の変更を最小限に抑えながら、テーブル内の情報を維持することです。