gpt4 book ai didi

mysql - 错误代码 : 1005 Can't create table (MySQL)

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:06 24 4
gpt4 key购买 nike

出于某种原因,我无法在 MySQL 上运行此 SQL 脚本。我相信我也设置了所有外键。如果变量类型是 INT,它运行良好,但是,如果它是 VARCHAR,它会给我一个错误代码 #1005。有人知道发生了什么吗?

DROP TABLE IF EXISTS `test_table_2`;
DROP TABLE IF EXISTS `test_table_1`;

CREATE TABLE `test_table_1` (
ID int NOT NULL AUTO_INCREMENT,
`color` VARCHAR(15) NOT NULL,
PRIMARY KEY(ID)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE `test_table_2` (
ID int NOT NULL AUTO_INCREMENT,
`test_id` int(10) NOT NULL,
`color` VARCHAR(15) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT `fk_color` FOREIGN KEY (`color`) REFERENCES `test_table_1` (`ID`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

问题在于行:

CONSTRAINT `fk_color` FOREIGN KEY (`color`) REFERENCES `test_table_1` (`ID`)

最佳答案

您正在尝试将 test_table_1INT 类型的 ID 列引用到 中的 Color 列test_table_2 所以它应该是 INT

类型
CREATE TABLE `test_table_2` (
ID int NOT NULL AUTO_INCREMENT,
`test_id` int(10) NOT NULL,
`color` INT NOT NULL, --here
PRIMARY KEY(ID),
CONSTRAINT `fk_color` FOREIGN KEY (`color`) REFERENCES `test_table_1` (`ID`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

基本上引用列必须与父表列具有相同的数据类型

关于mysql - 错误代码 : 1005 Can't create table (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838452/

24 4 0