约束定义在列上,可以限制列里存储的值。当尝试在该列上写入或更新为违反约束定义的值时,会触发一个错误并回滚这个操作;当尝试在已有的表的列上加上一个跟现有数据相冲突的约束时,也会触发一个错误并回滚这个操作。

    下面以 表和 cut 表为例,介绍 OceanBase 数据库的约束类型。

    • 例如,ware 表的 (w_name, w_city) 列上有个唯一约束,表示每个城市里仓库的名称必须是不重复的。

    • 外键约束():要求约束的列的值取自于另外一个表的主键列。

      例如,cust 表的 c_w_id 上有个外键约束引用了 ware 表的 w_id 列,表示业务上顾客归属的仓库必须是属于仓库表里的仓库。

    此外,Oracle 模式下,支持对外键约束和 CHECK 约束执行启用或禁用操作。具体语法如下:

    默认情况下,约束创建后为启用状态。

    说明

    目前 OceanBase 数据库不支持通过 ALTER TABLE 语句增加或修改约束,因此您需要在创建表时即确定好表的约束。

    关于时间列的默认时间设置

    • 示例:为表的时间列设置默认值,可以使用 sysdate 或 函数。