【问题标题】:SQL Missing Left ParenthesisSQL 缺少左括号
【发布时间】:2017-07-13 02:10:26
【问题描述】:

说我缺少左括号,但我不知道为什么

CREATE TABLE PROJECT_STAFF
(
    Prog_id NUMBER(5),
    Project_id NUMBER(6),
    Week_Year CHAR(5),
    Hours_worked NUMBER(4,1) NOT NULL,

    CONSTRAINT PROJECT_STAFF_Prog_id_pk PRIMARY KEY,
    CONSTRAINT PROJECT_STAFF_Prog_id_fk REFERENCES PROG(Prog_id),
    CONSTRAINT PROJECT_STAFF_Project_id_pk PRIMARY KEY,
    CONSTRAINT PROJECT_STAFF_Project_id_fk REFERENCES PROJECT(Project_id),
    CONSTRAINT PROJECT_STAFF_Week_Year_pk PRIMARY KEY,
    CONSTRAINT PROJECT_STAFF_Hours_worked_ck CHECK (Hours_work > 0)
);

【问题讨论】:

  • 为什么你有3个主键?另外,CONSTRAINT PROJECT_STAFF_Prog_id_pk PRIMARY KEY, 列名在哪里?只有约束名称!

标签: sql oracle


【解决方案1】:

外键引用需要引用键。所以,而不是:

CONSTRAINT PROJECT_STAFF_Prog_id_fk REFERENCES PROG(Prog_id),

你需要:

CONSTRAINT PROJECT_STAFF_Prog_id_fk FOREIGN KEY (Prog_id) REFERENCES PROG(Prog_id),

另一个外键也是如此。

注意:内联引用只能使用REFERENCES 语法。但是约束需要完整的语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2016-08-16
    • 2012-11-01
    • 1970-01-01
    相关资源
    最近更新 更多