RENAME
目的
ノート:
RENAME
文はロールバックできません。
RENAME
文を使用すると、表、ビュー、順序またはプライベート・シノニムの名前を変更できます。
-
古いオブジェクトの整合性制約、索引および権限付与は、新しいオブジェクトに自動的に移行されます。
-
名前を変更した表を参照するビュー、シノニム、ストアド・プロシージャ、ストアド・ファンクションなど、名前を変更したオブジェクトに依存するオブジェクトはすべて無効になります。
関連項目:
「CREATE SYNONYM」および「DROP SYNONYM」を参照してください。
前提条件
オブジェクトが自分のスキーマ内にある必要があります。
構文
rename::=
セマンティクス
old_name
既存の表、ビュー、順序またはプライベート・シノニムの名前を指定します。
new_name
既存のオブジェクトに割り当てる新しい名前を指定します。新しい名前は、同じネームスペース内の他のスキーマ・オブジェクトに使用されている名前以外にする必要があります。また、スキーマ・オブジェクトのネーミング規則に従って指定する必要があります。
オブジェクトの名前変更の制限事項
-
パブリック・シノニムの名前は変更できません。そのかわり、該当するパブリック・シノニムを削除し、新しい名前で別のパブリック・シノニムを作成してください。
-
依存表または依存する有効なユーザー定義オブジェクト型を持つ型のシノニムの名前は変更できません。
関連項目:
例
データベース・オブジェクトの名前変更: 例
次の例では、サンプル表hr.departments
のコピーを使用します。次の文は、表の名前をdepartments_new
からemp_departments
に変更します。
RENAME departments_new TO emp_departments;
この文では列名を直接変更できません。ただし、ALTER
TABLE
... rename_column_clause
を使用すると、列の名前を変更できます。
関連項目:
列名を変更するもう1つの方法は、AS
副問合せ
を指定したCREATE
TABLE
文とともに、RENAME
文を使用する方法です。この方法は、単に列の名前を変更するのではなく、表の構造を変更する場合に有効です。次の文は、サンプル表hr.job_history
を再作成し、列の名前をdepartment_id
からdept_id
に変更します。
CREATE TABLE temporary (employee_id, start_date, end_date, job_id, dept_id) AS SELECT employee_id, start_date, end_date, job_id, department_id FROM job_history; DROP TABLE job_history; RENAME temporary TO job_history;
前述の例の場合、job_history
表に定義されている整合性制約は失われます。これらの整合性制約は、ALTER
TABLE
文を使用して、新しいjob_history
表に再定義する必要があります。