1

我正在 oracle DB 中创建一个表并尝试添加约束,以便列中允许的数字为 1、2、3。

CREATE TABLE "TABLE_EXAMPLE"
(
.
.
"PROTOCOL" NUMBER (1,2,3),

....)

CONSTRAINT "CH1"
        CHECK ("PROTOCOL" BETWEEN 1 AND 3),

我做得对还是有更好的方法?

4

2 回答 2

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等。

而且我建议不要使用引号",除非表或列名中有特殊字符...

于 2013-01-22T11:45:10.973 回答
2

如果您要检查表级检查约束是最好的方法。因为如果您要插入更大的值,那么检查约束会抛出错误。

于 2013-01-22T11:42:23.157 回答