카테고리, 언어 및 categories_languages 세 가지 테이블이 있습니다. Categories_languages는 카테고리와 언어를 연결하는 many to many 테이블입니다. 테이블 언어에서 foregin 키 값을 업데이트하고 싶습니다만 에러 # 1451이 발생합니다 - 부모 행을 삭제하거나 업데이트 할 수 없습니다 : 외래 키 제약 조건이 실패합니다!mysql 데이터베이스에서 외래 키 값을 업데이트하는 방법
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(20) NOT NULL,
`modified` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `languages` (
`id` char(2) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `categories_languages` (
`id` int(11) unsigned NOT NULL auto_increment,
`category_id` int(11) unsigned NOT NULL,
`language_id` char(2) NOT NULL,
`translation` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_category_id_language_id` (`category_id`,`language_id`),
KEY `fk_language_id` (`language_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
ALTER TABLE `categories_languages`
ADD CONSTRAINT `categories_languages_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `categories_languages_ibfk_2` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE;
오류가 나에게 분명하지만, 내가 어떻게이 경우에는 키 값을 업데이트 할 수 있습니다?
ALTER TABLE `categories_languages`
ADD CONSTRAINT `categories_languages_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `categories_languages_ibfk_2` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
을하지만, 또한 메시지와 함께 실패합니다 : 나는 UPDATA CASCADE ON 추가 시도 MySQL은 말했다 : 문서 # 1005 - 테이블 './db_dodo/#sql-c2f_80e6f.frm'(errno를 : 121) 만들 수 없습니다
업데이트 쿼리가 그 오류를 생성 무엇을 실행하고 있습니까? – bobwienholt