行が親テーブルから削除されたときに、その行のデータが子テーブルで使用されている場合、FOREIGN KEY 制約が失敗するため、MySQL はエラーをスローします。これは、「顧客」と「注文」という 2 つのテーブルの例を使用して理解できます。ここで、「customer」は親テーブル、「orders」は子テーブルです。サブテーブル「orders」で使用されている行を「customer」テーブルから削除することはできません。これは、以下に示すように親テーブルから値を削除することで実証できます -
mysql> Select * from Customer; +----+--------+ | id | name | +----+--------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit| | 4 | Aarav | +----+--------+ 4 rows in set (0.00 sec) mysql> Select * from orders; +----------+----------+------+ | order_id | product | id | +----------+----------+------+ | 100 | Notebook | 1 | | 110 | Pen | 1 | | 120 | Book | 2 | | 130 | Charts | 2 | +----------+----------+------+ 4 rows in set (0.00 sec)
さて、親テーブル "customer" から id = 1 または id = 2 の行を削除しようとするとします (子テーブルはこれら 2 つの行を使用します)、外部キー制約が失敗したため、MySQL は次のエラーをスローします。
えええええ以上がMySQL 親テーブルから行を削除するとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。