رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از index بجای primary (حل شد)
#1
تو پروژه فروشگاه اینترنتی در جدول 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
پاسخ
تشکر شده توسط:
#2
باید کلید اصلی باشن تا ارتباط برقرار بشه. برای اینکه بتونید سفارش رو حذف کنید، باید اول اقلام داخلش رو حذف کنید. برای اینکه بطور خودکار حذف بشه، قید ON DELETE رو بجای RESTRICT روی CASCADE تنظیم کنید.
پاسخ
تشکر شده توسط: hamid
#3
نمیدونم چرا من Index گذاشتم داره کار میکنه.
پاسخ
تشکر شده توسط:
#4
کار میکنه ولی کلید اصلی نیست. یعنی الان میشه دو رکورد داشته باشین که هر دو فیلد product_id و user_id اونها مثل هم هست.
پاسخ
تشکر شده توسط: hamid




کاربران در حال بازدید این موضوع: 3 مهمان