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

広告
eyecatch

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

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

最初に 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 コマンドを使って作成済みのスキーマを変更する方法について解説しました。

PostgreSQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。