1. ホーム
  2. postgresql

[解決済み] スキーマ内のテーブルの名前を変更するには?

2023-03-07 07:12:51

質問

PostgreSQL 9.xを使用していますが、テーブルの名前を変更したいです。 このSQLコードです。

CREATE TABLE new (id int);
ALTER TABLE new RENAME TO old;
DROP TABLE old;

はテーブルの名前を正しく変更します。 しかし、このSQLコードでは

CREATE SCHEMA domain;
CREATE TABLE domain.old (id int);
ALTER TABLE domain.old RENAME TO domain.new;

はエラーで失敗します。

ERROR: 構文エラー at または near "."

下線部の "." は 'domain' と 'new' の間にあるものです。

どのように解決するのですか?

一つの方法として

ALTER TABLE domain.old RENAME TO new

他の方法

SET search_path TO domain;
ALTER TABLE old RENAME TO new;

のドキュメント search_path .