MySQL - "Foreign key constraint is incorrectly formed"

 
Vista:

"Foreign key constraint is incorrectly formed"

Publicado por Pablo (29 intervenciones) el 09/03/2021 11:21:05
Al intentar crear dos tablas relacionadas entre sí, cuyo código es éste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE herramientas
(
	herramienta_id      INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
	ubicacion_id         INTEGER NOT NULL,
	nombre_herramienta   VARCHAR(20) NULL,
	precio_coste         DECIMAL(8,2) NULL,
	unidades             INTEGER NULL,
	PRIMARY KEY (herramienta_id,ubicacion_id)
);
CREATE TABLE ubicaciones
(
	ubicacion_id         INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
	nombre_ubicacion     VARCHAR(20) NULL,
	armario              CHAR(10) NULL,
	cajon                CHAR(5) NULL,
	PRIMARY KEY (ubicacion_id)
);
 
ALTER TABLE herramientas
ADD FOREIGN KEY HERRAMIENTAS_EN_UBICACIONES (ubicacion_id) REFERENCES ubicaciones (ubicacion_id);

Me da el error:
1
#1005 - No puedo crear tabla `test`.`herramientas` (Error: 150 "Foreign key constraint is incorrectly formed") 

Mi pregunta es: ¿es debido a que quiero que las claves primarias sean UNSIGNED AUTO_INCREMENT en sus respectivas tablas?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de joel
Val: 644
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

"Foreign key constraint is incorrectly formed"

Publicado por joel (227 intervenciones) el 09/03/2021 16:01:57
Hola Pablo, el problema es que al intentar crear la tabla herramientas, la clave primaria tiene el campo id de la tabla ubicaciones... crea primero la tabla ubicaciones y después la tabla herramientas.
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

"Foreign key constraint is incorrectly formed"

Publicado por Pablo (29 intervenciones) el 10/03/2021 17:33:10
Gracias Joel, le doy la vuelta y lo pruebo.
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