我正在尝试将外键添加到我的代码中,但它仍然会出现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(里斯本时间))。