شرح صفوف ومحتوى الفقرة
عند عدم تحديد جملة ON DELETE أو ON UPDATE، يطبق MySQL افتراضياً خيار المنع الصارم RESTRICT (وهو مطابق تماماً لخيار NO ACTION في محرك InnoDB). يمنع هذا الخيار حذف أي سجل أب لا تزال له سجلات أبناء مرتبطة (Error 1451)، مما يحمي السجلات المالية والفواتير التاريخية من الحذف المتسلسل غير المقصود:
SQL
CREATE TABLE payment_receipts (
receipt_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id BIGINT UNSIGNED NOT NULL,
amount_paid DECIMAL(10, 2) NOT NULL CHECK (amount_paid > 0),
PRIMARY KEY (receipt_id),
CONSTRAINT fk_receipts_order
FOREIGN KEY (order_id) REFERENCES orders (order_id)
ON DELETE RESTRICT
ON UPDATE RESTRICT
);