sql >> Base de Datos >  >> RDS >> Mysql

Mysql crea una tabla con varias claves foráneas al eliminar el conjunto nulo

Su regla de clave externa es ON DELETE SET NULL pero la definición de su columna es NOT NULL .

Cambie la definición de su columna y elimine el NOT NULL parte o piensa demasiado en su regla de clave externa. Eso funciona:

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;

Demostración de SQLFiddle