我用以下数据创建了两个表
脚本:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)ENGINE=InnoDB;
CREATE TABLE Orders
(
O_Id int,
OrderNo int,
P_Id int NOT NULL,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
ON DELETE CASCADE
ON UPDATE CASCADE
)ENGINE=InnoDB;
INSERT INTO Persons VALUES
(1, 'Last', 'First', 'Address', 'City');
INSERT INTO Orders VALUES
(1, 2, 1);
DELETE FROM Persons WHERE P_Id = 1
select * from Orders;
我已经在 MySQL 工作台中实现了这个示例(示例取自 w3schools)。
现在在删除persons 表中的第一行时,甚至Orders 表中的相应行也应该被删除。即最后一行。但它不会被删除。
有人可以告诉我我在这里缺少什么吗?
它仍然显示订单表中的行。