[ Foro de SQL (y MySQL) ]

error 1215 en my sql

09-Jun-2014 15:13
Invitado (natalia)
3 Respuestas


 
(
	clientesid int NOT NULL,
	nombre varchar(50),
	apellido varchar(50),
	compania varchar(50),
	PRIMARY KEY (clientesid)
)engine = InnoDB;
 
CREATE TABLE Pedidos
(
	id int NOT NULL,
	FechaPedido datetime,
	FechaEntrega datetime,
	idCliente int NOT NULL,
	PRIMARY KEY(id),
	constraint fk_clientes_pedidos FOREIGN KEY 
	(idCliente)
	REFERENCES Clientes 
	(idCliente)
	ON UPDATE cascade	
	ON DELETE cascade
 
)engine = InnoDB;
 


no me deja crear la segunta tabla...


11-Jun-2014 00:04
Nacho Cabanes (+32)

Lo de "error 1215" es poco claro. Si lanzas esta consulta desde algún entorno como PhpMyAdmin, te dará más detalles sobre cuál es el error concreto y en qué punto se encuentra.

Si no usas PhpMyAdmin, la propia referencia online de MySQL te puede ayudar, indicándote que se trata de un problema con una clave ajena que no se ha podido crear:

http://dev.mysql.com/doc/refman/5.0/es/error-handling.html

Verás que tu segunda tabla tiene este fragmento:

 
REFERENCES Clientes 
(idCliente) 
 


pero no existe ese campo "idCliente" en la primera tabla, sino un "clientesid", por lo que se puede esperar que lo correcto fuese:

 
REFERENCES Clientes 
(clientesid) 
 



13-Jun-2014 13:08
Invitado (naty)

uso mysql workbench, revise el codigo con el profe y el no le encuentra el error, voy a probar lo que me decis del id, pero no creo que sea eso porque lo cambie varias veces ya


13-Jun-2014 13:47
Nacho Cabanes (+32)

Claro que es eso: en el REFERENCES tienes que decir el nombre de la tabla a la que haces referencia, y (entre paréntesis) el nombre del campo equivalente, tal y como se llama en esa tabla.

Aquí tienes la parte correspondiente de la referencia oficial de MySQL:

http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)