
06/04/2008, 05:11
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 17 años Puntos: 574 | |
Re: problema con alter table Cita:
Iniciado por under_ground 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 |