Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql създава таблица с множество външни ключове при изтриване set null

Правилото ви за външен ключ е 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как MySQL обработва едновременни вмъквания?

  2. MySQL ПОРЪЧАЙ ПО [стойност на полето за персонализиран SET]

  3. Каква е разликата между MySQL и MySQL2 предвид NodeJS

  4. Код на грешка:1822. Неуспешно добавяне на ограничението на външния ключ. Липсващ индекс за ограничение

  5. Mysql:Изпълнение на НЕ СЪЩЕСТВУВА. Възможно ли е да се подобри производителността?