error en foreign key
Publicado por andresin (3 intervenciones) el 01/02/2015 20:58:09
Buenas tardes! Soy estudiante de ASIR y tengo un problema con la creación de tablas para una base de datos que nos han mandado de trabajo para el fin de semana. Ya creé 3 tablas y a la hora de hacer las dos últimas, me da error, en teoría relacionados con las foreign keys (ambas dos tablas que pretendo crear y no consigo, llevan varias). El caso es que revisé minuciosamente campo por campo las tablas referenciadas a ver si encontraba algo que no coincidiese y no he encontrado nada. Todos las foreign keys referenciadas se encuentran en otras tablas donde son primary keys. Este es el script:
create table ventas(nif varchar(10) not null,
articulo varchar(20) not null,
cod_fabricante int not null,
peso int not null,
categoria varchar(10) not null,
fecha_venta date not null,
unidades_vendidas int,
primary key(nif, articulo, cod_fabricante, peso, categoria,
fecha_venta),
foreign key (cod_fabricante) references fabricantes(cod_fabricante),
foreign key(articulo) references articulos(articulo)
on delete cascade on update cascade,
foreign key(cod_fabricante) references articulos(cod_fabricante)
on delete cascade on update cascade,
foreign key(peso) references articulos(peso)
on delete cascade on update cascade,
foreign key(categoria) references articulos(categoria)
on delete cascade on update cascade);
create table pedidos(nif varchar(10),articulo varchar(20) not null,
cod_fabricante int not null, peso int not null, categoria varchar(10) not null,
fecha_pedido date not null, unidades_pedidas int,
primary key(nif, articulo, cod_fabricante, peso, categoria, fecha_pedido),
foreign key(nif) references tiendas(nif),
foreign key(articulo) references articulos(articulo)
on delete cascade on update cascade,
foreign key(cod_fabricante) references articulos(cod_fabricante)
on delete cascade on update cascade,
foreign key(peso) references articulos(peso)
on delete cascade on update cascade,
foreign key(categoria) references articulos(categoria)
on delete cascade on update cascade);
Probé a meter las foreign keys una a una en cada tabla, y las que me dan error son las dos últimas (peso y categoría). Las demás entran, en las dos tablas que intento crear.
Agradeceria un poco de ayuda. Gracias de antemano!!!!
create table ventas(nif varchar(10) not null,
articulo varchar(20) not null,
cod_fabricante int not null,
peso int not null,
categoria varchar(10) not null,
fecha_venta date not null,
unidades_vendidas int,
primary key(nif, articulo, cod_fabricante, peso, categoria,
fecha_venta),
foreign key (cod_fabricante) references fabricantes(cod_fabricante),
foreign key(articulo) references articulos(articulo)
on delete cascade on update cascade,
foreign key(cod_fabricante) references articulos(cod_fabricante)
on delete cascade on update cascade,
foreign key(peso) references articulos(peso)
on delete cascade on update cascade,
foreign key(categoria) references articulos(categoria)
on delete cascade on update cascade);
create table pedidos(nif varchar(10),articulo varchar(20) not null,
cod_fabricante int not null, peso int not null, categoria varchar(10) not null,
fecha_pedido date not null, unidades_pedidas int,
primary key(nif, articulo, cod_fabricante, peso, categoria, fecha_pedido),
foreign key(nif) references tiendas(nif),
foreign key(articulo) references articulos(articulo)
on delete cascade on update cascade,
foreign key(cod_fabricante) references articulos(cod_fabricante)
on delete cascade on update cascade,
foreign key(peso) references articulos(peso)
on delete cascade on update cascade,
foreign key(categoria) references articulos(categoria)
on delete cascade on update cascade);
Probé a meter las foreign keys una a una en cada tabla, y las que me dan error son las dos últimas (peso y categoría). Las demás entran, en las dos tablas que intento crear.
Agradeceria un poco de ayuda. Gracias de antemano!!!!
Valora esta pregunta


0