您的外键规则为,
ON DELETe SET NULL但列定义为
NOT NULL。
更改列定义并删除
NOT NULL零件或过分考虑外键规则。那个有效:
CREATE TABLE Vineyard ( VineyardID smallint auto_increment, VineyardName VARCHAr(45) NOT NULL, FarmerID smallint, GrapeID smallint, ComeFrom varchar(45) NOT NULL, HarvestedAmount int, RipenessPercent int, PRIMARY KEY (VineyardID), FOREIGN KEY (FarmerID) REFERENCES Worker(WorkerID) ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (GrapeID) REFERENCES Grape(GrapeID) ON DELETE SET NULL ON UPDATE CASCADE)Engine=InnoDB;
SQLFiddle演示



