我正在oracle DB中创建一个表并尝试添加约束,以便列中允许的数字为1,2,3。
CREATE TABLE "TABLE_EXAMPLE"
(
.
.
"PROTOCOL" NUMBER (1,2,3),
....)
CONSTRAINT "CH1"
CHECK ("PROTOCOL" BETWEEN 1 AND 3),
我做对了还是做得更好?
答案 0 :(得分:5)
CREATE TABLE TABLE_EXAMPLE
(
...
PROTOCOL NUMBER(1) NOT NULL CONSTRAINT CH1 CHECK (PROTOCOL IN (1,2,3))
...
);
BETWEEN 1 AND 3
包括1.5,1.6等
我建议不要使用引号"
,除非表名或列名中有特殊字符...
答案 1 :(得分:2)
如果您要检查表级别检查约束是最好的方法。因为如果你插入更大的值,那么检查约束ll抛出错误。