全部產品
Search
文件中心

ApsaraDB for OceanBase:行外約束

更新時間:Jul 01, 2024

本文為您介紹遷移 Oracle 資料庫的資料至 OceanBase 資料庫 Oracle 租戶時,CREATE TABLE DDL 行外約束的支援轉換範圍。

總覽

行外約束 out_of_line_constraint 的文法如下:

[ CONSTRAINT constraint_name ]
{ UNIQUE (column [, column ]...)
| PRIMARY KEY (column [, column ]...)
| FOREIGN KEY (column [, column ]...) references_clause
| CHECK (condition)
} [ constraint_state ]

references_clause:
REFERENCES [ schema_name. ] object [ (column [, column ]...) ]
  [ON DELETE { CASCADE | SET NULL } ]

constraint_state:
[ [NOT] DEFERRABLE [INITIALLY {IMMEDIATE | DEFERRED}]
 |  INITIALLY { IMMEDIATE | DEFERRED } [ NOT ] [ DEFERRABLE ]
]
[  RELY | NORELY  ]
[ using_index_clause ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ exceptions_clause ]

支援的範圍

  • 支援 CONSTRAINT constraint_name 定義約束名稱。

  • 支援定義 UNIQUE (column [, column ]...) 唯一鍵和 PRIMARY KEY (column [, column ]...) 主鍵。

  • 支援定義 CHECK 條件約束。

  • 支援 FOREIGN KEY (column [, column ]...) references_clause 子句定義外鍵,可以設定過濾。

  • 支援 CHECK 條件約束下 constraint_state 約束狀態屬性中的 ENABLE/DISABLEVALIDATE/NOVALIDATERELY/NORELY 屬性,其它屬性忽略。

不支援的範圍

constraint_state 約束狀態屬性:除 CHECK 條件約束下支援 ENABLEDISABLEVALIDATENOVALIDATERELYNORELY 屬性外,其它約束下均不支援,會忽略該 option。