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