Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql tworzy tabelę z wieloma kluczami obcymi przy usuwaniu zestawu null

Twoja reguła klucza obcego to ON DELETE SET NULL ale twoja definicja kolumny to NOT NULL .

Zmień definicję kolumny i usuń NOT NULL część lub przemyśl swoją regułę klucza obcego. To działa:

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;

Demo SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób przechowywania historycznego cennika w tabeli MySQL?

  2. Ponowny problem z wydajnością tabeli MySQL MyISAM

  3. Nieprawidłowa wartość domyślna pola znacznika czasu „create_date”

  4. Jak włączyć rozszerzenia mysql php w kontenerze docker?

  5. wybierz 1 losowy wiersz ze złożonym filtrowaniem