【问题标题】:(nuub) #1215 - Cannot add foreign key constraint [duplicate](nuub)#1215 - 无法添加外键约束[重复]
【发布时间】: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 更改文本

标签: mysql


【解决方案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;

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 2015-01-24
    • 2015-02-04
    • 2016-05-15
    • 2017-09-06
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多