(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] - 无法添加外键 [重复]

在服务器执行 SQL 脚本错误:错误 1215:无法添加外键约束

错误代码:1215。无法添加外键约束(外键)

错误代码:1215。无法添加外键约束(外键)

错误代码:1215。无法添加外键约束(外键)

表不工作:1215。无法添加外键约束