错误#1215 - 无法添加外键

时间:2013-10-04 18:51:43

标签: mysql key

我正在尝试将外键添加到我的代码中,但它仍然会出现SQL错误#1215

这是我用来创建外键的原因:

ALTER TABLE carro
ADD FOREIGN KEY(id_marca) REFERENCES marcas(id_marca),
ADD FOREIGN KEY(id_tipo) REFERENCES tipo_carro(id_tipo),
ADD FOREIGN KEY(id_combustivel) REFERENCES combustiveis(id_combustivel),
ADD FOREIGN KEY(id_cor) REFERENCES cores(id_cor);

/ *外键代码显然是在数据库和表* /

之后创建的

有两个不起作用的外键,一个引用'id_marca'而另一个引用'id_cor'。原因语言是mySQL。

CREATE DATABASE rentacar;

/* após a seleção da base de dados, criar as tabelas */

CREATE TABLE cliente(
    id_cliente int PRIMARY KEY AUTO_INCREMENT,
    nome varchar(80) NOT NULL,
    idade date
);

CREATE TABLE carro(
    id_carro int PRIMARY KEY AUTO_INCREMENT,
    matricula varchar(80) NOT NULL,
    id_marca int NOT NULL, /* chave estrangeira */
    ano int,
    id_tipo int NOT NULL, /* chave estrangeira */
    modelo varchar(80),
    id_combustivel int, /* chave estrangeira */
    id_cor int NOT NULL /* chave estrangeira */
);

CREATE TABLE marcas(
    id_marca int PRIMARY KEY AUTO_INCREMENT,
    descricao varchar(80) NOT NULL
);

CREATE TABLE tipo_carro(
    id_tipo int PRIMARY KEY,
    descricao varchar(80) NOT NULL
);

CREATE TABLE seguradoras(
    id_seguro int PRIMARY KEY,
    nome_seguradora varchar(80) NOT NULL,
    val_contrato date NOT NULL
);

CREATE TABLE combustiveis(
    id_combustivel int PRIMARY KEY,
    descricao varchar(80) NOT NULL
);

CREATE TABLE cores(
    id_cor int PRIMARY KEY,
    descricao varchar(80) NOT NULL
);

/* tabelas de relação */

CREATE TABLE seguro(
    id_carro int,
    id_seguro int,
    PRIMARY KEY(id_carro,id_seguro)
);

CREATE TABLE aluguer(
    id_cliente int,
    id_carro int,
    data_aluguer date NOT NULL,
    data_retorno date,
    PRIMARY KEY(id_cliente,id_carro)
);

如果你们中的任何人愿意帮助我,我会很高兴,我必须完成这项工作(今天是格林威治标准时间23点55分+ 1(里斯本时间))。

0 个答案:

没有答案