0
CREATE TABLE IF NOT EXISTS `beta`.`msg_messages` (
`id_msg` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user_from` BIGINT(20) UNSIGNED NOT NULL ,
`subject` VARCHAR(200) NOT NULL ,
`body` TEXT NOT NULL ,
`date` DATETIME NOT NULL ,
PRIMARY KEY (`id_msg`) ,
INDEX fk_msg_messages_user (`id_user_from` ASC) ,
INDEX fk_msg_messages_msg_messages_users (`id_msg` ASC) ,
CONSTRAINT `fk_msg_messages_user`
FOREIGN KEY (`id_user_from`)
REFERENCES `beta`.`user` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_msg_messages_msg_messages_users`
FOREIGN KEY (`id_msg`)
REFERENCES `beta`.`msg_messages_users` (`id_msg`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
*있어 그리고 이것은 내 오류입니다. 이들은 내 사용자 및 msg_messages_users 테이블입니다. 모든 테이블을 검토 한 결과 오류가 표시되지 않습니다. 임 MysqlWorbench 작업 및이 잘못된 sintax 생성합니다. *
오류 1005 : 'beta.msg_messages'(errno : 150) 테이블을 만들 수 없습니다.
CREATE TABLE IF NOT EXISTS `beta`.`user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`id`) ,
ENGINE = InnoDB
AUTO_INCREMENT = 87
DEFAULT CHARACTER SET = utf8;
CREATE TABLE IF NOT EXISTS `beta`.`msg_messages_users` (
`id` BIGINT UNSIGNED NOT NULL ,
`id_usr_to` BIGINT(20) UNSIGNED NOT NULL ,
`id_msg` BIGINT(20) UNSIGNED NOT NULL ,
`status` TINYINT NOT NULL DEFAULT 0 ,
`date` DATETIME NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX fk_msg_messages_users_user (`id_usr_to` ASC) ,
CONSTRAINT `fk_msg_messages_users_user`
FOREIGN KEY (`id_usr_to`)
REFERENCES `beta`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
아마도'id_msg BIGINT를 (20) UNSIGNED NOT NULL AUTO_INCREMENT'는 단지'id_msg BIGINT (20) UNSIGNED NOT NULL'이어야합니다. 자동 증분이 다른 테이블을 참조하는 방법은 무엇입니까? – SparKot
"SHOW ERRORS"및 "SHOW ENGINE INNODB STATUS"에 대한 출력을 게시하십시오. autoincrement는 합법적입니다 (확실히 이상 하긴하지만). 문제는 fk_msg_messages_msg_messages_users 제약 조건 생성에 있습니다 (제거하면 테이블이 생성됩니다) – Leo
140215 17:56:57 테이블 베타/msg_messages의 외래 키 제약 조건 오류 : FOREIGN KEY ('id_msg') 참조'beta' .'msg_messages_users' ('id_msg') ON)의 ENGINE = InnoDB의를 UPDATE CASCADE ON CASCADE를 삭제 : 테이블에 참조 열이 첫 번째 열로 표시 참조 된 테이블에 인덱스 또는 열 유형 를 찾을 수 없습니다 참조 된 테이블이 제약 조건과 일치하지 않습니다. – Julioarhernandez