Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2010, 10:27
veronica21
 
Fecha de Ingreso: junio-2009
Mensajes: 103
Antigüedad: 14 años, 11 meses
Puntos: 0
Me da error 1005 al crear una tabla y no puedo solucionarlo

el error es por clave foranea pero por mas que he mirado no he conseguido arreglarlo, os dejo la base de datos entera, es algo peque;o.... Por cierto el error se da en la tabla 'compra', el resto de tablas y las inserciones del final si se ejecutan bien:


CREATE DATABASE proyecto;
use proyecto;



/* TABLAS */

create table componente
(
nombrecomponente varchar(30) PRIMARY KEY
)engine=innodb;

create table categoria
(
nombrecategoria varchar(30) PRIMARY KEY
)engine=innodb;

create table articulo
(
nomarticulo varchar(30) NOT NULL,
nombrecomponente varchar(30) NOT NULL,
nombrecategoria varchar(30) NOT NULL,
marca varchar(25) NOT NULL,
precio float(9) NOT NULL,
descripcion varchar(250) NOT NULL,
primary key (nombrecomponente,nombrecategoria,marca,nomarticul o),
foreign key (nombrecomponente) references componente (nombrecomponente),
foreign key (nombrecategoria) references categoria (nombrecategoria)
)engine=innodb;

CREATE TABLE usuario
(
login varchar(30) primary key,
password varchar(30) NOT NULL,
privilegio varchar(15)NOT NULL
)engine=innodb;

create table compra
(
fecha datetime,
nomarticulo varchar(30),
login varchar(30),
primary key(nomarticulo,login,fecha),
foreign key(nomarticulo) references articulo(nomarticulo),
foreign key(login) references usuario (login)
)engine=innodb;

/* INSERCION */

INSERT INTO usuario VALUES('admin','xd','si');
INSERT INTO usuario VALUES('user','xd','no');