Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql tạo bảng với nhiều khóa ngoại khi xóa bộ null

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;

Bản trình diễn 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. Xóa dữ liệu trong bảng MySQL bằng PHP?

  2. SQL:Ở đâu giữa hai ngày không có năm?

  3. Nhiều người thuê PHP SaaS - DB riêng biệt cho từng khách hàng, hay nhóm chúng?

  4. Loại MySQL ENUM so với các bảng tham gia

  5. Làm cách nào để xóa một hàng nhất định khỏi bảng mysql có cùng giá trị cột?