Productとpurchaseの 2 つのテーブルがあります。列のある列にon delete restrict
FKを設定しました。次に、FK で product.product_id を削除しようとすると、次のようなエラーが表示されますproduct.purchase_id
purchase.purchase_id
データベース エラーが発生しました エラー番号: 1451 親行を削除または更新できません: 外部キー制約が失敗しました (`another_bata`.`product_purchase_item`, CONSTRAINT `FK_product_purchase_item_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) ON UPDATE CASCADE) product_id='158' の商品から削除 ファイル名: C:\xampp\htdocs\rima_shoe\system\database\DB_driver.php ライン番号: 330
しかし、ユーザーフレンドリーなエラーが必要です。この製品リストを削除できないとします。この製品はすでに在庫があるためです。
だから私は php でこの FK をチェックする必要があります。どうすればこれを行うことができますか?
私の 2 番目の質問..on delete restrict
いくつかの特別なケースで既に FK が存在する 'product.product_id' を削除することは可能ですか? 仮定する
DELETE p,q FROM product AS p INNER JOIN purchase AS q
WHERE p.purchase_id=q.purchase_id AND q.purchase_quan=0