0
我被要求爲表中的一個屬性添加一個約束,以便該屬性的值應該是0到1之間的浮點數。據我所知,float(a,b)不是用於任務.....除了在Oracle中爲此問題編寫觸發器之外,還有更簡單的方法嗎?有沒有辦法定義一個值的範圍而不使用觸發器?
我被要求爲表中的一個屬性添加一個約束,以便該屬性的值應該是0到1之間的浮點數。據我所知,float(a,b)不是用於任務.....除了在Oracle中爲此問題編寫觸發器之外,還有更簡單的方法嗎?有沒有辦法定義一個值的範圍而不使用觸發器?
是使用檢查約束。
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