masudafsar
سه شنبه 06 خرداد 1393, 16:10 عصر
سلام من هنگام تعریف کلید خارجی با این خطا مواجه می شم :
#1452 - Cannot add or update a child row: a foreign key constraint fails (`atlas`.`#sql-924_533`, CONSTRAINT `fnk_option_cats_pcat_id` FOREIGN KEY (`pcat_id`) REFERENCES `product_cats` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)
این هم کد sql جداول :
CREATE TABLE IF NOT EXISTS `option_cats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
`cat_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;
CREATE TABLE IF NOT EXISTS `product_cats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;
این هم کد تعریف کلید خارجی:
ALTER TABLE `option_cats`
ADD CONSTRAINT `fnk_option_cats_pcat_id`
FOREIGN KEY ( `pcat_id` )
REFERENCES `atlas`.`product_cats`
( `id` )
ON DELETE SET NULL
ON UPDATE CASCADE ;
#1452 - Cannot add or update a child row: a foreign key constraint fails (`atlas`.`#sql-924_533`, CONSTRAINT `fnk_option_cats_pcat_id` FOREIGN KEY (`pcat_id`) REFERENCES `product_cats` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)
این هم کد sql جداول :
CREATE TABLE IF NOT EXISTS `option_cats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
`cat_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;
CREATE TABLE IF NOT EXISTS `product_cats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;
این هم کد تعریف کلید خارجی:
ALTER TABLE `option_cats`
ADD CONSTRAINT `fnk_option_cats_pcat_id`
FOREIGN KEY ( `pcat_id` )
REFERENCES `atlas`.`product_cats`
( `id` )
ON DELETE SET NULL
ON UPDATE CASCADE ;