0

我正在尝试将外键添加到我的代码中,但它不断收到 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 GMT+1(里斯本时间))。

4

0 回答 0