CREATE TABLE WORKORDERS
(wo# NUMBER(10) CONSTRAINT WORKORDERS_wo#_pk PRIMARY KEY,
proj# NUMBER(10) NOT NULL,
wo_Desc VARCHAR2(100) NOT NULL,
wo_Assigned VARCHAR2(50),
wo_Hours NUMBER(3) NOT NULL,
wo_Start DATE(YYYY-MM-DD),
wo_Due DATE(YYYY-MM-DD),
wo_Complete CHAR(1)
CONSTRAINT WORKORDER_wo_Complete_ck CHECK(wo_Complete IN('Y','N')),
CONSTRAINT WORKORDER_proj#_fk FOREIGN KEY (proj#) REFERENCES PROJECT (proj#),
CONSTRAINT WORKORDERS_wo_Desc_unq UNIQUE,
CONSTRAINT WORKORDERS_wo_Hours_ck CHECK(wo_Hours > 0))
甲骨文为我强调的问题是
wo_Start DATE(YYYY-MM-DD),
E(Y
它建议添加一个REFERENCE或CONSTRAINT,但我认为两者都不能解决。看起来不错,我不确定为什么它只会给我一个跨越3个字符的错误。
最佳答案
如果外键引用有效,我希望以下方法能起作用:
CREATE TABLE WORKORDERS (
wo# NUMBER(10) CONSTRAINT WORKORDERS_wo#_pk PRIMARY KEY,
proj# NUMBER(10) NOT NULL,
wo_Desc VARCHAR2(100) NOT NULL,
wo_Assigned VARCHAR2(50),
wo_Hours NUMBER(3) NOT NULL,
wo_Start DATE,
wo_Due DATE,
wo_Complete CHAR(1),
CONSTRAINT WORKORDER_wo_Complete_ck CHECK (wo_Complete IN ('Y','N')),
CONSTRAINT WORKORDER_proj#_fk FOREIGN KEY (proj#) REFERENCES PROJECT (proj#),
CONSTRAINT WORKORDERS_wo_Desc_unq UNIQUE (wo_Desc),
CONSTRAINT WORKORDERS_wo_Hours_ck CHECK (wo_Hours > 0)
);
问题:
关于sql - Oracle SQL-认为缺少正确的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579634/