このトピックでは、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に、ALTER TABLE DDL 操作における制約の変更、削除、および追加の変換範囲について説明します。
構文
constraint_clauses:
{ ADD { { out_of_line_constraint }...
| out_of_line_REF_constraint
}
| MODIFY { CONSTRAINT constraint_name
| PRIMARY KEY
| UNIQUE (column [, column ]...)
} constraint_state [ CASCADE ]
| RENAME CONSTRAINT old_name TO new_name
| { drop_constraint_clause }...
}
out_of_line_constraint:
[ CONSTRAINT constraint_name ]
{ UNIQUE (column [, column ]...)
| PRIMARY KEY (column [, column ]...)
| FOREIGN KEY (column [, column ]...) references_clause
| CHECK (condition)
} [ constraint_state ]
out_of_line_REF_constraint:
{ SCOPE FOR ({ ref_col | ref_attr })
IS [ schema. ] scope_table
| REF ({ ref_col | ref_attr }) WITH ROWID
| [ CONSTRAINT constraint_name ] FOREIGN KEY
( { ref_col [, ref_col ] | ref_attr [, ref_attr ] } ) references_clause
[ constraint_state ]
}
drop_constraint_clause:
(
DROP ( ( PRIMARY KEY
| UNIQUE "(" (column)... ")"
| CONSTRAINT constraint_name )
[ CASCADE ] [( KEEP | DROP ) INDEX ]
)
[ ONLINE ]
)サポートされている操作
drop_constraint_clause 句で CONSTRAINT constraint_name を指定して制約を削除する操作がサポートされています。一度に削除できる制約は 1 つだけです。サンプルコード:
ALTER TABLE T DROP CONSTRAINT CST;サポートされていない操作
プライマリキーまたはユニークキーの削除はサポートされていません。この操作を実行すると、エラーが返されます。
新しい制約の追加はサポートされていません。この操作を実行すると、エラーが返されます。
制約の変更はサポートされていません。この操作を実行すると、エラーが返されます。
制約の名前変更はサポートされていません。この操作を実行すると、エラーが返されます。
無視される句とオプション
説明
同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。
CASCADE 句
インデックスを保持するか削除するかを指定する KEEP | DROP INDEX 句
制約の削除時にテーブル DML 操作を許可する ONLINE オプション