Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema con alter table

Estas en el tema de problema con alter table en el foro de Mysql en Foros del Web. Amigos debo hacer un cambio en 1 tabla (PROPIEDAD) usando un alter table, pero me lanza un error 1216, cannot add or update a child ...
  #1 (permalink)  
Antiguo 05/04/2008, 11:44
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
problema con alter table

Amigos debo hacer un cambio en 1 tabla (PROPIEDAD) usando un alter table, pero me lanza un error 1216, cannot add or update a child row: a foreign constrain falis.

Mi idea llevar desde la tabla vfciudades hacia vfpropierty las llaves foraneas idCiudad, id_admin, idCreacion

"CIUDADES"

CREATE TABLE vfciudades (
idCiudad INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
id_admin INTEGER UNSIGNED NOT NULL,
idCreacion INTEGER UNSIGNED NOT NULL,

nombre VARCHAR(100) NULL,
PRIMARY KEY(idCiudad, id_admin, idCreacion),
INDEX vfciudades_FKIndex1(idCreacion, id_admin),
FOREIGN KEY(idCreacion, id_admin)
REFERENCES vfpaises(idCreacion, id_admin)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
TYPE=InnoDB;

"PROPIEDAD"

CREATE TABLE vfpropierty (
idProp INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
id_admin INTEGER UNSIGNED NOT NULL,
nombreEsp VARCHAR(200) NULL,
nombreIng VARCHAR(200) NULL,
descriEsp MEDIUMTEXT NULL,
can_personas INTEGER(2) UNSIGNED NULL,
can_dormitorio INTEGER(2) UNSIGNED NULL,
PRIMARY KEY(idProp, id_admin),
INDEX VFPropierty_FKIndex1(id_admin),
FOREIGN KEY(id_admin)
REFERENCES VFAdmin(id_admin)
ON DELETE NO ACTION
ON UPDATE NO ACTION,

)
TYPE=InnoDB;

Esta es la sentencia que ejecuto

ALTER TABLE `vf`.`vfpropierty` ADD CONSTRAINT `FK_vfpropierty_2`
FOREIGN KEY `FK_vfpropierty_2` (`idCiudad`, `id_admin`, `idCreacion`)
REFERENCES `vfciudades` (`idCiudad`, `id_admin`, `idCreacion`)

Última edición por under_ground; 05/04/2008 a las 11:59
  #2 (permalink)  
Antiguo 05/04/2008, 14:12
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: problema con alter table

Hola under_ground,

Creo que tu problema es por que intentas cambiar la integridad en las relaciones habiendo datos que no la cumplen. Es decir, quizás hayan datos que para esa tabla no existan datos padre.

Revisa si los datos a los que intentas cambiar las relaciones tengan todos datos padres.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 06/04/2008, 05:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: problema con alter table

Cita:
Iniciado por under_ground Ver Mensaje
Amigos debo hacer un cambio en 1 tabla (PROPIEDAD) usando un alter table, pero me lanza un error 1216, cannot add or update a child row: a foreign constrain falis.

Mi idea llevar desde la tabla vfciudades hacia vfpropierty las llaves foraneas idCiudad, id_admin, idCreacion

"CIUDADES"

CREATE TABLE vfciudades (
idCiudad INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
id_admin INTEGER UNSIGNED NOT NULL,
idCreacion INTEGER UNSIGNED NOT NULL,

nombre VARCHAR(100) NULL,
PRIMARY KEY(idCiudad, id_admin, idCreacion),
INDEX vfciudades_FKIndex1(idCreacion, id_admin),
FOREIGN KEY(idCreacion, id_admin)
REFERENCES vfpaises(idCreacion, id_admin)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
TYPE=InnoDB;

"PROPIEDAD"

CREATE TABLE vfpropierty (
idProp INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
id_admin INTEGER UNSIGNED NOT NULL,
nombreEsp VARCHAR(200) NULL,
nombreIng VARCHAR(200) NULL,
descriEsp MEDIUMTEXT NULL,
can_personas INTEGER(2) UNSIGNED NULL,
can_dormitorio INTEGER(2) UNSIGNED NULL,
PRIMARY KEY(idProp, id_admin),
INDEX VFPropierty_FKIndex1(id_admin),
FOREIGN KEY(id_admin)
REFERENCES VFAdmin(id_admin)
ON DELETE NO ACTION
ON UPDATE NO ACTION,

)
TYPE=InnoDB;

Esta es la sentencia que ejecuto

ALTER TABLE `vf`.`vfpropierty` ADD CONSTRAINT `FK_vfpropierty_2`
FOREIGN KEY `FK_vfpropierty_2` (`idCiudad`, `id_admin`, `idCreacion`)
REFERENCES `vfciudades` (`idCiudad`, `id_admin`, `idCreacion`)

idCiudad y idCreacion no estan en vfpropierty luego es imposible hacer una FK con esos campos...

Y si estuvieran porsupuesto deberia cumplirse la integridad referencial como te dice Carxl.

Quim
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.