0

我是 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 中定义这个业务规则?

4

1 回答 1

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”一词拼写错误。它应该是“维护”。如果您的表名拼写正确,未来的人类开发人员将不胜感激。

于 2012-11-06T20:13:37.670 回答