OceanBase 数据库支持多种类型的完整性约束。
用户可以使用以下完整性约束对输入的列值加以限制:
NOT NULL完整性约束UNIQUE KEY完整性约束PRIMARY KEY完整性约束引用完整性约束
NOT NULL 完整性约束
非空规则(Null Rule)是定义在某一列上的规则,其作用是禁止将要被插入或更新的数据行的列值为空值NULL。
UNIQUE KEY 完整性约束
唯一值规则(Unique Value Rule)是定义在某一列(或某一列集)上的规则,其作用是确保将要被插入或更新的数据行此列(或列集)的值是唯一的。
PRIMARY KEY 完整性约束
主键值规则(Primary Key Value Rule)是定义在某一键(Key)(键指一列或一个列集)上的规则,其作用是确保表内的每一数据行都可以由某一个键值唯一地确定。
引用完整性约束
引用完整性规则(Referential Integrity Rule)是定义在某一键(Key)(键指一列或一个列集)上的规则,其作用是确保任意键值都能与相关表(Related Table)的某一键值,即引用值(Referenced Value)相匹配。
引用完整性约束时,对引用值可以进行哪些类型的数据操作(Data Manipulation),以及这些操作将如何影响依赖值(Dependent Value)。请参见如下具体规则:
限制(Restrict):不允许对引用值进行更新与删除。
置空(Set to Null):当因引用值被更新或删除后,所有受影响的依赖值都将被置为
NULL。置默认值(Set to Default):当引用值被更新或删除后,所有受影响的依赖值都将被赋予一个默认值。
级联操作(Cascade): 当引用值被更新后,所有受影响的依赖值也将被更新为相同的值。当引用数据行(Referenced Row)被删除后,所有受影响的依赖数据行(Dependent Row)也将被删除。
无操作(No Action): 不允许对引用值进行更新与删除。此规则与
RESTRICT有所不同,它只在语句结束时进行检查,如果约束被延迟(Deferred)则在事务结束时进行检查。




