我是sql编码的新手,并尝试创建一个表。 我从老师那里得到了这张桌子作为示例表:
CREATE TABLE Lektor
(Kuerzel CHAR(3) NOT NULL,
Fachgebiet VARCHAR(35) NOT NULL,
PersNr INTEGER NOT NULL UNIQUE,
Eintritt DATE NOT NULL,
Gehalt INTEGER CHECK (Gehalt > 25000),
Chef CHAR(3)
CHECK (Chef IN (SELECT Kuerzel FROM Lektor)),
PRIMARY KEY (Kuerzel),
FOREIGN KEY (Kuerzel) REFERENCES Person)
我尝试使用该代码创建表,但我不能因为:
CHECK (Chef IN (SELECT Kuerzel FROM Lektor))
它一直告诉我" Lektor"无法找到,但我试图创造它......
我能够使用以下Mysql工作台语法创建没有该Check的表:
CREATE TABLE IF NOT EXISTS `buchverlag`.`Lektor` (
`Kuerzel` CHAR(3) NOT NULL,
`Fachgebiet` VARCHAR(35) NOT NULL,
`PersNr` INT(11) NOT NULL,
`Eintritt` DATE NOT NULL,
`Gehalt` INT(11) NULL CHECK (Gehalt > 25000),
`Chef` CHAR(3) NULL,
PRIMARY KEY (`Kuerzel`),
UNIQUE INDEX `PersNr_UNIQUE` (`PersNr` ASC),
CONSTRAINT `Kuerzel`
FOREIGN KEY (`Kuerzel`)
REFERENCES `buchverlag`.`Person` (`Kuerzel`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
有谁知道如何解决这个问题?