行外约束

本文为您介绍迁移 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。