0

我被要求为表中的一个属性添加一个约束,以便该属性的值应该是介于 0 和 1 之间的浮点数。据我所知,float(a,b) 不适用于该任务。 .... 那么除了在 Oracle 中为这个问题编写触发器之外,还有更简单的方法吗?

4

1 回答 1

0

是的,使用检查约束。

SQL> alter table test modify id check (id between 0 and 1);

Table altered.

SQL> insert into test values (1.0);

1 row created.

SQL> insert into test values (1.01);
insert into test values (1.01)
*
ERROR at line 1:
ORA-02290: check constraint (SYS.SYS_C0013632) violated

如果需要,您可以命名检查约束:

SQL> alter table test modify id constraint id_between_0_1 check (id between 0 and 1);

Table altered.

SQL> insert into test values (1.01);
insert into test values (1.01)
*
ERROR at line 1:
ORA-02290: check constraint (SYS.ID_BETWEEN_0_1) violated
于 2013-02-17T19:56:39.300 回答