Publicado en Uncategorized

MySQL Error 1215: Cannot add foreign key constraint (Solucion)

mysql error 1215 solucion

Creando una nueva base de datos, el modelador genero el script respectivo.

Hice unos cambios para dar AUTO_INCREMENT a los campos ID de cada tabla.

Aqui tuve el error: unos eran BIGINT pero al momento de modificar la tabla para el Auto Increment, cambie el tipo a int(11)

CREATE TABLE Comuna
(
	id_comuna            INTEGER ,
	descripcion          VARCHAR(40) NULL,
	habilitado           BIT NULL,
	id_region            BIGINT NULL 
);
ALTER TABLE Comuna
ADD PRIMARY KEY (id_comuna);
ALTER TABLE Comuna MODIFY id_comuna int(11) NOT NULL AUTO_INCREMENT; /*error de cambio de tipo*/

CREATE TABLE Region
(
	id_region            BIGINT , /*error de tipo*/
	descripcion          VARCHAR(40) NULL,
	habilitado           BIT NULL
);
ALTER TABLE Region
ADD PRIMARY KEY (id_region);
ALTER TABLE Region MODIFY id_region int(11) NOT NULL AUTO_INCREMENT;

-- trato de crear la FOREIGN KEY y genera el error
ALTER TABLE Comuna
ADD FOREIGN KEY R_57 (id_region) REFERENCES Region (id_region);

Entonces la solucion es mantener los tipo de datos en los campos que seran FOREIGN KEY. Para el ejemplo, no usar BIGINT y solo int(11)

Modifico la Tabla Comuna

ALTER TABLE Comuna MODIFY id_region int(11);

Ejecuto la constraint hacia la tabla REGION ahora sin error


-- ahora creo la FOREIGN KEY y ya no hay error
ALTER TABLE Comuna
ADD FOREIGN KEY R_57 (id_region) REFERENCES Region (id_region);

Veo el cambio en la tabla COMUNA

Y esto seria todo 😉

TYDW.-

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s