تالار گفتمان nCIS.ir

نسخه‌ی کامل: استفاده از index بجای primary (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
تو پروژه فروشگاه اینترنتی در جدول orderproducts دو تا فیلد order_id و product_id بهتر نبود index باشن؟ الان که میخوام یه سفارش رو حذف کنم این ارور رو میده.
نقل قول:خطای CDbCommand در اجرای SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`shop`.`orderproducts`, CONSTRAINT `fk_orderproduct_order` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON UPDATE CASCADE). The SQL statement executed was: DELETE FROM `orders` WHERE `orders`.`id`=4
باید کلید اصلی باشن تا ارتباط برقرار بشه. برای اینکه بتونید سفارش رو حذف کنید، باید اول اقلام داخلش رو حذف کنید. برای اینکه بطور خودکار حذف بشه، قید ON DELETE رو بجای RESTRICT روی CASCADE تنظیم کنید.
نمیدونم چرا من Index گذاشتم داره کار میکنه.
کار میکنه ولی کلید اصلی نیست. یعنی الان میشه دو رکورد داشته باشین که هر دو فیلد product_id و user_id اونها مثل هم هست.