Quy tắc khóa ngoại của bạn là ON DELETE SET NULL
nhưng định nghĩa cột của bạn là NOT NULL
.
Thay đổi định nghĩa cột của bạn và xóa NOT NULL
một phần hoặc suy nghĩ quá mức về quy tắc khóa ngoại của bạn. Điều đó hoạt động:
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;