(nuub)#1215 - 无法添加外键约束[重复]
Posted
技术标签:
【中文标题】(nuub)#1215 - 无法添加外键约束[重复]【英文标题】:(nuub) #1215 - Cannot add foreign key constraint [duplicate] 【发布时间】:2019-11-07 15:53:06 【问题描述】:所以我正在尝试做那个基本的bbdd,最后一行,外键,不工作我不知道为什么
CREATE TABLE tenda(
codi TEXT(10) NOT NULL,
nom VARCHAR(150) NOT NULL,
adreca VARCHAR(150) NOT NULL,
PRIMARY KEY(codi(10))
) ENGINE = Innodb;
CREATE TABLE plataforma(
id INT NOT NULL,
nom VARCHAR(150) NOT NULL,
PRIMARY KEY(id)
) ENGINE = Innodb;
CREATE TABLE videojoc(
id INT NOT NULL,
nom VARCHAR(150) NOT NULL,
preu INT,
idplataforma INT,
coditenda TEXT(10),
PRIMARY KEY(id),
FOREIGN KEY(idPlataforma) REFERENCES PLATAFORMA(id),
FOREIGN KEY(codiTenda(10)) REFERENCES TENDA(codi)
) ENGINE = Innodb;
错误
#1215 - 无法添加外键约束
【问题讨论】:
对重复项的简短回答:您无法为TEXT
字段创建 FK
好的,我明白我不能做一个 text(10) fK no ?
Ty @CID 已解决,通过 varchar 更改文本
【参考方案1】:
codiTenda(10)
不是字段名,请改用FOREIGN KEY(coditenda) REFERENCES TENDA(codi)
【讨论】:
"ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT 列 'codiTenda' 用于没有密钥长度的密钥规范"【参考方案2】:创建表tenda( codi varchar(10) 非空, 标称 VARCHAR(150) 非空, adreca VARCHAR(150) 非空, 主键(codi(10)) ) 引擎 = Innodb;创建表平台( id INT NOT NULL, 标称 VARCHAR(150) 非空, 主键(id) ) 引擎 = Innodb;创建表视频节目( id INT NOT NULL, 标称 VARCHAR(150) 非空, preu INT, idplataforma INT, coditenda varchar(10), 主键(id), 外键(idPlataforma)参考平台(id), 外键(codiTenda) 参考 TENDA(codi) ) 引擎 = Innodb;
【讨论】:
以上是关于(nuub)#1215 - 无法添加外键约束[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 错误 [1215] [HY000] - 无法添加外键 [重复]