mysql关系外键出错

时间:2015-09-07 06:10:44

标签: php mysql

我尝试将表mysql关联但我有这个错误

错误代码:1215。无法添加外键约束

这是mysql脚本

    CREATE DATABASE prototipo;
USE prototipo;

CREATE TABLE tb_tipo_usuario(
id int not null,
tipo varchar(30) not null,
constraint PK_tb_tipo_usuario_id primary key(id)
);

CREATE TABLE tb_usuarios(
id_usuario int(5) zerofill not null auto_increment,
usuario varchar(30) not null,
clave varchar(30) not null,
nombre varchar(30) not null,
apellido varchar(30) not null,
cedula varchar(30) not null,
cargo varchar(40) not null,
tipo_usuario int not null,
fecha_registro date not null,
constraint PK_tb_usuarios_id_usuario primary key(id_usuario),
constraint fk_tb_usuarios_tipo_usuario foreign key(tipo_usuario) references tb_tipo_usuario(id)

);


CREATE TABLE tb_tipo_pollo(
id_tipo_pollo int(2) zerofill not null auto_increment,
tipo_pollo varchar(30) not null,
constraint pk_tb_tipo_pollo_id_tipo_pollo primary key(id_tipo_pollo)
);

create table tb_parvada(
id_parvada int(5) zerofill not null,
cantidad int not null,
constraint pk_tb_parvada_id_parvada primary key(id_parvada)
);


create table tb_entrada_parvada(
id_entrada_parvada int(5) zerofill not null auto_increment,
tipo_pollo int not null,
cantidad int not null,
fecha_entrada date not null,
fecha_registro TIMESTAMP  DEFAULT CURRENT_TIMESTAMP,
comentario varchar(500) null,
id_usuario int not null,
constraint pk_tb_entrada_parvada_id_entrada_pollo primary key(id_entrada_parvada),
constraint fk_tb_entrada_parvada_tipo_pollo foreign key(tipo_pollo) references tb_tipo_pollo(id_tipo_pollo),
constraint fk_tb_entrada_parvada_id_entrada_parvada foreign key(id_entrada_parvada) references tb_parvada(id_parvada),
constraint fk_tb_entrada_parvada_id_usuario foreign key(id_usuario) references tb_usuarios(id_usuario)
);


create table tb_muerte_pollo(
id_muerte int(5) zerofill not null auto_increment,
id_parvada int not null,
cantidad int not null,
fecha date,
fecha_registro TIMESTAMP  DEFAULT CURRENT_TIMESTAMP,
motivo varchar(300),
id_usuario int not null,
constraint pk_tb_muerte_pollo primary key(id_muerte),
constraint fk_tb_muerte_pollo foreign key(id_parvada) references tb_parvada(id_parvada),
constraint fk_tb_muerte_pollo_id_usuario foreign key(id_usuario) references tb_usuarios(id_usuario)
);

错误是当我尝试添加表tb_entrada_parvada或表tb_muerte_pollo我不知道如何修复此错误,只是在我删除外键时工作

1 个答案:

答案 0 :(得分:0)

参考表中列的DataTypeattributes应与当前表相同。许多列都缺少ZeroFill。这就是你得到错误的原因。请改变它。

create table tb_entrada_parvada(
id_entrada_parvada int(5) zerofill not null auto_increment,
tipo_pollo int(2) zerofill not null,
cantidad int not null,
fecha_entrada date not null,
fecha_registro TIMESTAMP  DEFAULT CURRENT_TIMESTAMP,
comentario varchar(500) null,
id_usuario int(5) zerofill not null,
constraint pk_tb_entrada_parvada_id_entrada_pollo primary key(id_entrada_parvada),
constraint fk_tb_entrada_parvada_tipo_pollo foreign key(tipo_pollo) references tb_tipo_pollo(id_tipo_pollo),
constraint fk_tb_entrada_parvada_id_entrada_parvada foreign key(id_entrada_parvada) references tb_parvada(id_parvada),
constraint fk_tb_entrada_parvada_id_usuario foreign key(id_usuario) references tb_usuarios(id_usuario)
);

create table tb_muerte_pollo(
id_muerte int(5) zerofill not null auto_increment,
id_parvada int zerofill not null,
cantidad int not null,
fecha date,
fecha_registro TIMESTAMP  DEFAULT CURRENT_TIMESTAMP,
motivo varchar(300),
id_usuario int zerofill not null,
constraint pk_tb_muerte_pollo primary key(id_muerte),
constraint fk_tb_muerte_pollo foreign key(id_parvada) references tb_parvada(id_parvada),
constraint fk_tb_muerte_pollo_id_usuario foreign key(id_usuario) references tb_usuarios(id_usuario)
);

DEMO FIDDLE