1

나는 두 개의 테이블 링 및 스타일 즉

CREATE TABLE IF NOT EXISTS `ring` (
  `jewelry_id` int(11) NOT NULL auto_increment,
  `ring_id` varchar(50) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `description` text NOT NULL,
  `image` varchar(100) NOT NULL,
  `type` text NOT NULL,
  PRIMARY KEY  (`jewelry_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

syle 테이블은

CREATE TABLE IF NOT EXISTS `style` (
  `style_id` int(11) NOT NULL AUTO_INCREMENT,
  `style` text NOT NULL,
  `jewelry_id` int(11) NOT NULL,
  PRIMARY KEY (`style_id`),
  KEY `jewelry_id` (`jewelry_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

스타일 테이블에 외래 키를 추가하면 오류가 발생합니다.

ALTER TABLE `style`
  ADD CONSTRAINT `style_ibfk_1` FOREIGN KEY (`jewelry_id`) REFERENCES `ring` (`jewelry_id`) ON DELETE CASCADE ON UPDATE CASCADE;

오류는

#1005 - Can't create table './j_jewelry/#sql-2c3b_750.frm' (errno: 150) (Details...</a>)


  • 신규 사용자로부터 형식이 올바른 질문의 경우 +1 에 오신 것을 환영합니다. - JP19

2 답변


3

MyISAM 테이블은 외래 키를 지원하지 않는다. 두 테이블 모두 InnoDB로 만듭니다.


  • 그는 InnoDB 인 스타일 테이블에 제약 조건을 추가한다. - Dan Grossman
  • @ 단 : 두 테이블 모두 InnoDB 여야합니다. - JP19
  • 고맙습니다 Jp 네 말이 맞아 ....! - shani

0

외래 키를 참조하는 경우 테이블 유형은 다음과 같아야합니다.INNODB

관련된 질문

최근 질문