MySQL - error al crear las tablas

 
Vista:

error al crear las tablas

Publicado por ivan (1 intervención) el 06/09/2011 18:17:43
muy buenas a todos los del foro resulta que estoy creando una base de datos en mysql y al llegar ala penúltima tabla mysql me dice que hay un error en la tabla pero llevo días de tras de esto y no consigo solucionar el problema pues no lo veo de ninguna de las maneras.

el código es el siguiente :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
CREATE TABLE tienda
(
tienda_id INT NOT NULL AUTO_INCREMENT,
tienda INT NOT NULL,
tipo_de_tienda  VARCHAR(100),
PRIMARY KEY (tienda_id,tienda),
INDEX (tienda))
 ENGINE = InnoDB;
 
 
CREATE TABLE usuario_user
(
usuario_user_id INT NOT NULL  AUTO_INCREMENT,
nombre_user  VARCHAR(60) NOT NULL,
apellido_user VARCHAR(70) NOT NULL,
tienda  INT NOT NULL,
email VARCHAR(100),
password_user_invitado VARCHAR(50),
fecha_alta_invitado TIMESTAMP,
PRIMARY KEY (usuario_user_id,nombre_user,apellido_user),
INDEX(usuario_user_id),
FOREIGN KEY (tienda) REFERENCES tienda (tienda)
) ENGINE = InnoDB;
 
CREATE TABLE pedidos
(
pedido_id INT NOT NULL  AUTO_INCREMENT,
 total_factura DOUBLE 	NOT  NULL,
tienda  INT NOT NULL,
nombre_user  VARCHAR(60) NOT NULL,
apellido_user VARCHAR(70) NOT NULL,
fecha_pedido TIMESTAMP,
PRIMARY KEY (pedido_id,total_factura),
FOREIGN KEY (tienda) REFERENCES tienda (tienda),
FOREIGN KEY (nombre_user) REFERENCES usuario_user (nombre_user),
FOREIGN KEY (apellido_user) REFERENCES usuario_user (apellido_user))
 ENGINE = InnoDB;
 
 
 
CREATE TABLE factura
(
factura_id INT NOT NULL AUTO_INCREMENT,
nombre_producto VARCHAR(100),
cantidad_producto DOUBLE,
total_factura DOUBLE NOT NULL,
tienda INT NOT NULL,
nombre_user  VARCHAR(60) NOT NULL,
apellido_user VARCHAR(70) NOT NULL,
PRIMARY KEY (factura_id),
INDEX(factura_id),
FOREIGN KEY (tienda) REFERENCES tienda(tienda),
FOREIGN KEY (total_factura) REFERENCES pedidos(total_factura),
FOREIGN KEY (nombre_user) REFERENCES usuario_user (nombre_user),
FOREIGN KEY (apellido_user) REFERENCES usuario_user (apellido_user))
ENGINE = InnoDB;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error al crear las tablas

Publicado por Martin (150 intervenciones) el 06/09/2011 19:23:23
Algun error en especial? proba esto

DELIMITER $$

CREATE TABLE tienda (
tienda_id INT NOT NULL AUTO_INCREMENT,
tienda INT NOT NULL,
tipo_de_tienda VARCHAR(100),
PRIMARY KEY (tienda_id,tienda),
INDEX (tienda)) ENGINE = InnoDB$$

DELIMITER ;

Y asi con cada tabla, proba y comenta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

[soluconado] Can't create table 'test.pedidos' (errno: 150)

Publicado por xve (1151 intervenciones) el 06/09/2011 19:45:39
Hola ivan, para poder utilizar una FOREIGN KEY, el campo al que hace referencia tienes que ser un índice.
Crea los indices en la tabla usuario_user:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE usuario_user
(
usuario_user_id INT NOT NULL  AUTO_INCREMENT,
nombre_user  VARCHAR(60) NOT NULL,
apellido_user VARCHAR(70) NOT NULL,
tienda  INT NOT NULL,
email VARCHAR(100),
password_user_invitado VARCHAR(50),
fecha_alta_invitado TIMESTAMP,
PRIMARY KEY (usuario_user_id,nombre_user,apellido_user),
INDEX(usuario_user_id),
INDEX(nombre_user),
INDEX(apellido_user),
FOREIGN KEY (tienda) REFERENCES tienda (tienda)
) ENGINE = InnoDB;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[soluconado] Can't create table 'test.pedidos' (errno: 150)

Publicado por Javier Torné (1 intervención) el 21/03/2012 16:07:12
Es tan sencillo como que cuando defines la PRIMARY KEY no puedes poner más de un valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error al crear las tablas

Publicado por Gonzalo GC (339 intervenciones) el 28/03/2012 05:06:04
Iván: Ese diseño de tablas es directamente un espanto.
Parece que no tienes ni idea de lo que es el modelo Entidad-Relacion aplicado a las Bases de Datos...
Prácticamente hay que hacer todo de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar