ALTER(名前変更)
ALTER(名前変更)ステートメントにより、インデックス、ユーザー定義関数、ストアド プロシージャ、テーブル、トリガー、またはビューの名前を変更できます。
構文
ALTER オブジェクトの種類 RENAME 修飾されたオブジェクト名 TO 新しいオブジェクト名
オブジェクトの種類 ::= INDEX
| FUNCTION
| PROCEDURE
| TABLE
| TRIGGER
| VIEW
修飾されたオブジェクト名 ::= データベース名.テーブル名.オブジェクト名
| データベース名.オブジェクト名
| テーブル名.オブジェクト名
| オブジェクト名
データベース名, テーブル名, オブジェクト名, 新しいオブジェクト名 ::= ユーザー定義名
備考
以下のオブジェクトは、PSQL v9 より前のバージョンの Zen で作成されている場合には、名前を変更できません。
•ストアド プロシージャ
•トリガー
•ビュー
以前のリリースでは、これらのオブジェクトの名前によるシステム テーブルのインデックスは変更不可として作成されました。これらのオブジェクトのインデックスが変更可能になったのは PSQL v9 からです。
どのオブジェクトの種類もデータベース名を使って修飾できます。ただし、INDEX または TRIGGER オブジェクトを修飾する場合は、テーブル名も含める必要があります。テーブル名は、INDEX および TRIGGER オブジェクトを修飾する場合にのみ使用できます。
ALTER ステートメントで、データベース内のオブジェクトの名前を変更することができます。変更するオブジェクトが、現在セッションが接続されていないデータベース内にある場合は、データベース名を使ってオブジェクトの種類を修飾する必要があります。名前変更されたオブジェクトは、同一データベース内にデータベース名として現れます。
修飾子のデータベース名を省略すると、現在セッションが接続されているデータベースを基にオブジェクトが識別され、名前が変更されます。
新しいオブジェクト名の修飾子にデータベース名を使用してはいけません。注意してください。新しい名前のコンテキストは、元の名前のコンテキストと常に一致させます。
メモ:データベース エンジンは、名前変更されたオブジェクトの依存関係をチェックしません。以前の名前で依存関係が設定されているすべてのオブジェクトを必要に応じて修正してください。たとえば、あるトリガーが t1 という名前のテーブルを参照しているとします。テーブル t1 の名前を t5 に変更すると、トリガーには無効な SQL が含まれていることになり、トリガーは失敗します。
オブジェクトの名前は、psp_rename システム ストアド プロシージャを使用して変更することもできます。
例
次のステートメントは、現在セッションが接続されているデータベースにあるインデックス suplid の名前を vendor_id へ変更します。インデックスが適用されているテーブルは region5 です。
ALTER INDEX RENAME region5.suplid TO vendor_id
次のステートメントは、データベース foodforlife にあるユーザー定義関数 calbrned の名前を caloriesburned へ変更します。
ALTER FUNCTION RENAME foodforlife.calbrned TO caloriesburned
次のステートメントは、データベース international にあるストアド プロシージャ checkstatus の名前を isEligible へ変更します。
ALTER PROCEDURE RENAME international.checkstatus TO isEligible
次のステートメントは、現在セッションが接続されているデータベースにあるテーブル payouts の名前を accts_payable へ変更します。
ALTER TABLE RENAME payouts TO accts_payable
次のステートメントは、データベース electronics のテーブル domestic にあるトリガー testtrig3 の名前を new_customer へ変更します。
ALTER TRIGGER RENAME electronics.domestic.testtrig3 TO new_customer
次のステートメントは、現在セッションが接続されているデータベースにあるビュー suplrcds の名前を vendor_codes へ変更します。
ALTER VIEW RENAME suplrcds TO vendor_codes
関連項目