すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase (Deprecated):制約の変更、削除、および追加

最終更新日:Jan 19, 2025

このトピックでは、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 オプション