Sql表添加约束以检查数量限制

Sql表添加约束以检查数量限制,sql,oracle,ddl,check-constraint,Sql,Oracle,Ddl,Check Constraint,我正在oracle DB中创建一个表,并尝试添加约束,以便列中允许的数字为1,2,3 CREATE TABLE "TABLE_EXAMPLE" ( . . "PROTOCOL" NUMBER (1,2,3), ....) CONSTRAINT "CH1" CHECK ("PROTOCOL" BETWEEN 1 AND 3), 我做得对还是更好?如果要签入表级检查约束,那么最好的方法就是签入。因为如果插入较大的值,则检查约束将抛出错误 如果要签入表级,那么检查约束是最好的方法

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

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

....)

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

我做得对还是更好?

如果要签入表级检查约束,那么最好的方法就是签入。因为如果插入较大的值,则检查约束将抛出错误

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

CREATE TABLE TABLE_EXAMPLE 
(
 ...
  PROTOCOL NUMBER(1) NOT NULL CONSTRAINT CH1 CHECK (PROTOCOL IN (1,2,3))
 ...
);
1和3之间包括1.5、1.6等

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

1和3之间包括1.5、1.6等


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

Oracle中没有数字1,2,3数据类型。但是我看到数字0,1数据类型数字0,1不是枚举。这是位数和精度。@Plouf!number0,1是错误的声明,因为数字精度不能为零。+1用于添加约束,这是非常好的数据库样式!Oracle中没有数字1,2,3数据类型。但是我看到数字0,1数据类型数字0,1不是枚举。这是位数和精度。@Plouf!number0,1是错误的声明,因为数字精度不能为零。+1用于添加约束,这是非常好的数据库样式!NUMBER1和NUMBER0,1之间有什么区别?数据类型NUMBER采用两个参数NUMBERp,s。第一个p是精度,第二个s是刻度。文档中有一些示例,数字1和数字0,1之间有什么区别?数据类型数字采用两个参数NUMBERp,s。第一个p是精度,第二个s是刻度。文档中有一些示例