sql >> Database >  >> RDS >> Mysql

Mysql maakt tabel met meerdere refererende sleutels op delete set null

Uw buitenlandse sleutelregel is ON DELETE SET NULL maar uw kolomdefinitie is NOT NULL .

Wijzig ofwel uw kolomdefinitie en verwijder de NOT NULL deel of overdenk uw buitenlandse sleutelregel. Dat werkt:

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-demo



  1. Een gesplitste database versleutelen in Access 2016

  2. PHP/ODBC-coderingsprobleem

  3. MySQL vs. MariaDB:wat u moet weten

  4. Hoe waarden van twee rijen in MySQL te wisselen zonder de unieke beperking te schenden?