SQL 解説書
RENAME TABLE ステートメントは、既存の表の名前を変更します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、
あるいは動的 SQL ステートメントの使用によって発行することができます。
このステートメントは、動的に作成できる実行可能ステートメントです。
しかし、バインド・オプション DYNAMICRULES BIND を適用する場合は、
ステートメントを動的に準備することはできません (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、
SYSADM、DBADM、または CONTROL のいずれかの特権が含まれている必要があります。
構文
.-TABLE-.
>>-RENAME--+-------+--source-table-name--TO--target-identifier--><
説明
- source-table-name
- その名前を変更したい既存の表を指定します。
名前 (スキーマ名を含む) は、
データベースにすでに存在する表を指定していなければなりません (SQLSTATE 42704)。
その表を指定する別名であっても構いません。
この名前に、カタログ表 (SQLSTATE 42832)、要約表、タイプ付き表 (SQLSTATE 42997)、
ニックネーム、または表や別名以外のオブジェクト (SQLSTATE 42809) を指定することはできません。
- target-identifier
- 該当の表のスキーマ名を伴わない新しい名前を指定します。
source-table-name のスキーマ名が、
表の新しい名前の修飾に使用されます。
修飾された名前が、データベースにすでに存在する表、視点、
または別名を指定するものであってはなりません (SQLSTATE 42710)。
規則
ソース表は、以下に該当していてはなりません。
- 既存の視点定義または要約表定義で参照されている
- 既存のトリガーのトリガー SQL ステートメントで参照されているか、既存のトリガーの対象の表である
- SQL 関数で参照されている
- 検査制約がある
- 識別列以外に生成列がある
- 参照保全制約における親表または従属表である
- 既存の参照列の効力範囲内である
ソース表が上記の条件の 1 つまたは複数に違反している場合、
エラー (SQLSTATE 42986) が戻されます。
注
- カタログ項目が更新され、新しい表名が反映されます。
- ソース表名に関連するすべての 許可は、
新しい表名に転送 されます (許可カタログ表が適切に更新されます)。
- ソース表に対して定義された索引は、
新しい表に転送 されます (索引カタログ表が適切に更新されます)。
- ソース表に従属するパッケージはいずれも無効になります。
- source-table-name として別名を使用する場合、
その別名は表名に解決されなければなりません。
表の名前は、その表のスキーマの中で変更されます。
別名は RENAME ステートメントによって変更されず、従来の表名を引き続き指します。
- 基本キー制約または固有制約のある表の名前は、
基本キーまたは固有制約がいずれも外部キーによって参照されていない場合に変更できます。
例
EMP 表の名前を EMPLOYEE に変更します。
RENAME TABLE EMP TO EMPLOYEE
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]