首页 > 解决方案 > 在 Oracle sql live 上运行时缺少右括号

问题描述

CREATE TABLE Enrollment
(
    OfferNo  NUMBER(10)  NOT NULL,
    StdNo    CHAR(11)    NOT NULL,
    EnrGrade NUMBER(3,2) NULL,

    CONSTRAINT EnrollmentPK 
        PRIMARY KEY (OfferNo, StdNo),
    CONSTRAINT OfferingFK 
        FOREIGN KEY (OfferNo) REFERENCES Offering
                ON DELETE CASCADE
                ON UPDATE CASCADE,
    CONSTRAINT StudentFK 
        FOREIGN KEY (StdNo) REFERENCES Student
                ON DELETE CASCADE
                ON UPDATE CASCADE
);

标签: oracleforeign-keysddlcreate-tableora-00907

解决方案


您缺少约束所指的列:

CREATE TABLE Enrollment(
    OfferNo       NUMBER(10)       NOT NULL,
    StdNo         CHAR(11)      NOT NULL,
    EnrGrade      NUMBER(3,2)  NULL,
    CONSTRAINT EnrollmentPK PRIMARY KEY (OfferNo, StdNo),
    CONSTRAINT OfferingFK FOREIGN KEY (OfferNo) REFERENCES Offering(OfferNo)
    -- Here --------------------------------------------------------^
                          ON DELETE CASCADE
                          ON UPDATE CASCADE,
    CONSTRAINT StudentFK FOREIGN KEY (StdNo) REFERENCES Student(StdNo)
    -- And here ------------------------------------------------^
                          ON DELETE CASCADE
                          ON UPDATE CASCADE
);

推荐阅读