次のデータを使用して2つのテーブルを作成しました
脚本:
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テーブルの対応する行も削除されることになります。つまり、最後の行です。しかし、それは削除されていません。
誰かが私がここで欠けているものを教えてもらえますか?
それでも、注文テーブルの行が表示されます。