这是我的问题:
我正在一个名为David的数据库中工作,试图在此创建两个表:coloresproductos,这两个表将通过外键链接,其中父表将是colores,子表将为productos,但是当我单击继续时,将显示以下消息:


  errno:150“外键约束格式不正确”


有人可以帮助我吗?

这是我写的代码:

create table `color`(
    id_color int(3)not null AUTO_INCREMENT,
    nombre varchar(30)not null,
    PRIMARY KEY(id_color)
) ENGINE=INNODB;


create table`producto`(
    id_producto int(3)NOT null AUTO_INCREMENT,
    nombre varchar(30)not null,
    id_color int(3)not null,
    precio decimal(10) not null,
    PRIMARY KEY(id_producto),
    INDEX(id_color),
    FOREIGN KEY(id_color)
    REFERENCES`color`(id_color) on UPDATE CASCADE
) ENGINE= INNODB;


这是我编写的代码。
mysql - 如何创建两个与外键链接的表-LMLPHP

这是出现的错误。
mysql - 如何创建两个与外键链接的表-LMLPHP

最佳答案

从技术上讲,问题只是单词references后的缺失空格,但整个过程还需要几个空格。

create table `color`(
    id_color int(3) not null AUTO_INCREMENT,
    nombre varchar(30) not null,
    PRIMARY KEY(id_color)
) ENGINE=INNODB;

create table`producto`(
    id_producto int(3) NOT null AUTO_INCREMENT,
    nombre varchar(30) not null,
    id_color int(3) not null,
    precio decimal(10) not null,
    PRIMARY KEY(id_producto),
    INDEX(id_color),
    FOREIGN KEY(id_color)
    REFERENCES `color`(id_color) on UPDATE CASCADE
) ENGINE= INNODB;


另外,PK列上不需要NOT NULL。只是说。它成为自动和冗余的。

关于mysql - 如何创建两个与外键链接的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33848131/

10-09 18:05
查看更多