スキーマを変更する(ALTER SCHEMA)

PostgreSQL では作成済みのスキーマを変更する場合、 ALTER SCHEMA コマンドを使用しまあす。ここでは PostgreSQL で作成済みのスキーマを変更する方法について解説します。現在変更できるのはスキーマの名前と所有者の変更です。

(Last modified: )

スキーマの名前を変更する

最初に ALTER SCHEMA コマンドを使ってスキーマの名前を変更する方法です。次の書式を使用します。

ALTER SCHEMA name RENAME TO new_name

現在のスキーマの名前( name )を新しいスキーマの名前( new_name )に変更します。

スキーマの名前を変更するにはコマンドを実行するロールがスーパーユーザーか、スキーマの所有者でかつスキーマが作成されているデータベースで CREATE 権限を持っている必要があります。

-- --

それでは実際に試してみます。 psql メタコマンドの \dn を実行して確認すると、現在 mydb データベースにはデフォルトで作成されている public 以外に 2 つのスキーマが作成されています。

\dn

スキーマの名前を変更する(1)

この中の momo スキーマの名前を fruit に変更します。次のように実行してください。

alter schema momo rename to fruit;

スキーマの名前を変更する(2)

スキーマの名前が変更されました。確認のためにあらためて \dn コマンドを実行してみます。

スキーマの名前を変更する(3)

momo スキーマの名前が fruit に変更されていることが確認できました。

スキーマの所有者を変更する

次にに ALTER SCHEMA コマンドを使ってスキーマの所有者を変更する方法です。次の書式を使用します。

ALTER SCHEMA name OWNER TO new_owner

スキーマ( name )を新しいスキーマの所有者( new_name )に変更します。

スキーマの所有者を変更するにはコマンドを実行するロールがスーパーユーザーか、スキーマの所有者でかつ新しい所有者の直接的または間接的にメンバであり、スキーマが作成されているデータベースで CREATE 権限を持っている必要があります。

-- --

それでは実際に試してみます。 psql メタコマンドの \dn を実行して確認すると、現在 mydb データベースにはデフォルトで作成されている public 以外に 2 つのスキーマが作成されています。

\dn

スキーマの所有者を変更する(1)

この中の fruit スキーマの所有者を saru ロールに変更します。次のように実行してください。

alter schema fruit owner to saru;

スキーマの所有者を変更する(2)

スキーマの所有者が変更されました。確認のためにあらためて \dn コマンドを実行してみます。

スキーマの所有者を変更する(3)

fruit スキーマの所有者が saru ロールに変更されていることが確認できました。

-- --

ALTER SCHEMA コマンドを使って作成済みのスキーマを変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。