如何编写alter table语句来添加约束

时间:2012-11-06 19:56:50

标签: sql oracle constraints check-constraints

我是SQL新手。我创建了几个表:

CREATE TABLE MAINTINANCE
(Maint_mname char(10),
Maint_date date,
Maint_duedate date NOT NULL,
Maint_mdesc char (15));    

CREATE TABLE DESIGNERR
(Dez_emp_number varchar(11),
Dez_field char(12),
Dez_qualification char(10) NOT NULL,
Dez_experience smallint);

对于第一个表,我添加了以下约束:

ALTER TABLE MAINTINANCE ADD CONSTRAINT CHK_maintdate CHECK(Maint_date<MAint_duedate);

但我收到错误invalid ALTER TABLE option。你能告诉我为什么会这样吗?同样适合朋友,但不适合我。

对于第二个表,我必须为业务规则编写SQL命令:

  

如果设计师的资格是BS,那么至少4年   经验是必需的。但是,如果设计师的资格是   MS然后至少2年经验就足够了。

我们如何在SQL中定义此业务规则?

1 个答案:

答案 0 :(得分:3)

您发布的代码

SQL> CREATE TABLE MAINTINANCE
  2  (Maint_mname char(10),
  3  Maint_date date,
  4  Maint_duedate date NOT NULL,
  5  Maint_mdesc char (15));

Table created.

SQL> ALTER TABLE MAINTINANCE ADD CONSTRAINT CHK_maintdate CHECK(Maint_date<MAint_duedate);

Table altered.

如果您收到错误,

  • 从SQL * Plus会话中剪切并粘贴,该会话准确显示您正在执行的语句
  • 发布完整错误堆栈

虽然它不会影响您的代码,但“MAINTINANCE”一词拼写错误。它应该是“维护”。如果您的表名拼写正确,未来的人类开发人员将不胜感激。