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