在Oracle中的EMP表中添加约束

时间:2018-02-13 12:19:03

标签: sql oracle

如何在Oracle的EMP表中添加约束,以便hiredate字段不能是星期日?

1 个答案:

答案 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语句添加新约束(正如您已经建议的那样)。试试,如果你不能让它发挥作用。