约束定义在列上,可以限制列里存储的值。当尝试在该列上写入或更新为违反约束定义的值时,会触发一个错误并回滚这个操作;当尝试在已有的表的列上加上一个跟现有数据相冲突的约束时,也会触发一个错误并回滚这个操作。
下面以 表和 cut
表为例,介绍 OceanBase 数据库的约束类型。
-
例如,
ware
表的(w_name, w_city)
列上有个唯一约束,表示每个城市里仓库的名称必须是不重复的。 外键约束():要求约束的列的值取自于另外一个表的主键列。
例如,
cust
表的c_w_id
上有个外键约束引用了ware
表的w_id
列,表示业务上顾客归属的仓库必须是属于仓库表里的仓库。
此外,Oracle 模式下,支持对外键约束和 CHECK
约束执行启用或禁用操作。具体语法如下:
默认情况下,约束创建后为启用状态。
说明
目前 OceanBase 数据库不支持通过 ALTER TABLE
语句增加或修改约束,因此您需要在创建表时即确定好表的约束。
关于时间列的默认时间设置
- 示例:为表的时间列设置默认值,可以使用
sysdate
或 函数。