如何在Oracle的EMP表中添加约束,以便hiredate字段不能是星期日?
答案 0 :(得分:0)
以下是如何使用CHECK
语句中的CREATE TABLE
约束来执行此操作的示例。
SQL> create table test (
2 id number,
3 hiredate date constraint ch_hd check
4 (to_char(hiredate, 'dy', 'nls_date_language=english') <> 'sun')
5 );
Table created.
SQL> -- Tuesday - should be OK
SQL> insert into test values (1, date '2018-02-13');
1 row created.
SQL> -- Sunday - should fail
SQL> insert into test values (1, date '2018-02-18');
insert into test values (1, date '2018-02-18')
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.CH_HD) violated
SQL>
如果您的表已经存在,则必须使用ALTER TABLE
语句添加新约束(正如您已经建议的那样)。试试,如果你不能让它发挥作用。