我正在尝试对我的数据库进行正向工程,该数据库有 7 个表,但其中一个向我发送了错误。我真的不知道从这里做什么,因为它的设置就像我的其他表一样,所以我不确定是什么导致了错误,谷歌返回了许多不同的答案。专辑SQL:pastebin.com/A3axVAA5
Executing SQL script in server
ERROR: Error 1005: Can't create table 'cat10e.recording' (errno: 150)
CREATE TABLE IF NOT EXISTS `cat10e`.`recording` (
`rec_id` SMALLINT NOT NULL,
`album_id` INT NOT NULL,
`rec_duration` TIME NOT NULL,
`rec_genre` VARCHAR(45) NOT NULL,
`rec_cost` DECIMAL(4,2) NOT NULL,
`rec_title` VARCHAR(45) NOT NULL,
`rec_date` DATE NOT NULL,
`rec_note` VARCHAR(255) NULL,
PRIMARY KEY (`rec_id`, `album_id`),
INDEX `fk_recording_album1_idx` (`album_id` ASC),
CONSTRAINT `fk_recording_album1`
FOREIGN KEY (`album_id`)
REFERENCES `cat10e`.`album` (`album_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL script execution finished: statements: 21 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
查看 DDL 的album
表看起来像album_id
列定义为:
`album_id` SMALLINT NOT NULL
鉴于album_id
栏目中的recording
表定义为:
`album_id` INT NOT NULL
尝试改变album_id
栏目中的recording
表对此:
`album_id` SMALLINT NOT NULL
如果您想从以下位置设置 FK,它们必须匹配recording
.album_id
to album
.album_id
!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)