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

Cannot delete or update a parent row: a foreign key constraint fails

Estas en el tema de Cannot delete or update a parent row: a foreign key constraint fails en el foro de Mysql en Foros del Web. Hola estoy utilizando phpmyadmin para administrar bases de datos el problema es que quiero importar una tabla desde otra base de datos pero me sale ...
  #1 (permalink)  
Antiguo 03/02/2010, 08:30
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Cannot delete or update a parent row: a foreign key constraint fails

Hola
estoy utilizando phpmyadmin para administrar bases de datos
el problema es que quiero importar una tabla desde otra base de datos pero me sale

#1217 - Cannot delete or update a parent row: a foreign key constraint fails

tampoco puedo borrar el tabla que quiero cambiar
que tengo que cambiar en la tabla para poder borrarla y asi importar desde la otra base de datos.
  #2 (permalink)  
Antiguo 03/02/2010, 08:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Este problema es más de base de datos, te sugiero que esperes que un moderador te mueva al foro de Base de datos para que te puedan ayudar mejor allí. Si especificas que base de datos es, mucho mejor para que te muevan a la que corresponde.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/02/2010, 08:34
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

debe ser problema en la estructura de tus tablas.. en todo caso esto no va en este foro

saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 03/02/2010, 08:46
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Cita:
Iniciado por abimaelrc Ver Mensaje
Este problema es más de base de datos, te sugiero que esperes que un moderador te mueva al foro de Base de datos para que te puedan ayudar mejor allí. Si especificas que base de datos es, mucho mejor para que te muevan a la que corresponde.
esperare que lo muevan entonces

como que base de datos es?
  #5 (permalink)  
Antiguo 03/02/2010, 08:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a Mysql
  #6 (permalink)  
Antiguo 03/02/2010, 09:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

el problema es que estas tratando de borrar o actualizar un registro que tiene dependencias de otras tablas y no te lo va a permitir hacer.

Puedes poner la estructura de las tablas que estas manejando para ayudarte con una solución?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 03/02/2010, 09:25
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

son todas tipo InnoDB
  #8 (permalink)  
Antiguo 03/02/2010, 09:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Pero postea mejor como creaste las tablas, o sea la estructura completa.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 03/02/2010, 10:03
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

mmmmm?
  #10 (permalink)  
Antiguo 03/02/2010, 10:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Como estás usando phpMyAdmin, usa el export para que traiga la estructura de las tablas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 03/02/2010, 10:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Cita:
Iniciado por d4n13l4 Ver Mensaje
mmmmm?
Que falta de interés en tu respuesta.

Si te solicitamos mas información, es porque con la info que das es insuficiente para tratar de resolver el problema. En este foro no hay adivinos y si no explicas bien cual es el problema, nadie podrá ayudarte a resolverlo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #12 (permalink)  
Antiguo 03/02/2010, 10:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Cita:
son todas tipo InnoDB
Esto ya lo sabíamos y no nos dice nada.

Postea la sentencia que te produce el error, y la estructura (los CREATE TABLE) de cada tabla involucrada.

La PK tabla donde estás tratando de hacer una operación UPDATE o DELETE está siendo usada en otra tabla como FK, y lo que estás intentando hacer está afectando una PK que está en un registro de la segunda tabla. Eso produce una violación de integridad referencial y como la segunda tabla no tiene en su definición ON DELETE ... ON UPDATE..., no te permitirá hacerlo.
Es una restricción de clave foránea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 03/02/2010, 11:47
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

no puedo ingresar a phpmyadmin asi q aun no pruebo nada
  #14 (permalink)  
Antiguo 03/02/2010, 11:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Desde la consola de mysql puedes hacerlo, solo necesitas escribir.
Código MySQL:
Ver original 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 03/02/2010, 13:09
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

puedo entrar a la bd
ver las tablas
pero para ver la estructura me dice

ERROR 1030 (HY000): Got error 28 from storage engine
  #16 (permalink)  
Antiguo 03/02/2010, 13:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Código MySQL:
Ver original
  1. SHOW CREATE TABLE nombreDeTabla;
Donde nombreDeTabla es el nombre de una tabla que deseas analizar, devuelve dos campos, el segundo de los cuales contiene la sentencia que permite crear esa misma tabla.
Eso es lo que debes hacer con cada tabla vinculada y postearnos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 03/02/2010, 14:02
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

esto?
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| maquina | CREATE TABLE `maquina` (
`idMaquina` int(11) NOT NULL auto_increment,
`hostname` varchar(100) default NULL,
`ipHost` text,
`serialNumber` varchar(100) default NULL,
`memRAM` varchar(100) default NULL,
`fileSystem` text,
`version` text,
`usuarioMaq` text,
`fila` char(1) default NULL,
`modulo` char(1) default NULL,
`rack` int(2) default NULL,
`instalacion` date default NULL,
`expiracion` date default NULL,
`idModeloMaquina` int(11) default NULL,
`idAreaMaquina` int(2) default NULL,
`idProveedor` int(2) default NULL,
`idOS` int(11) default NULL,
`idCPU` int(11) default NULL,
`idEstado` int(2) default NULL,
PRIMARY KEY (`idMaquina`),
UNIQUE KEY `hostname` (`hostname`),
KEY `idModeloMaquina` (`idModeloMaquina`),
KEY `idAreaMaquina` (`idAreaMaquina`),
KEY `idProveedor` (`idProveedor`),
KEY `idOS` (`idOS`),
KEY `idCPU` (`idCPU`),
KEY `idEstado` (`idEstado`),
CONSTRAINT `maquina_ibfk_1` FOREIGN KEY (`idModeloMaquina`) REFERENCES `modeloMaquina` (`idModeloMaquina`),
CONSTRAINT `maquina_ibfk_2` FOREIGN KEY (`idAreaMaquina`) REFERENCES `areaMaquina` (`idAreaMaquina`),
CONSTRAINT `maquina_ibfk_3` FOREIGN KEY (`idProveedor`) REFERENCES `proveedor` (`idProveedor`),
CONSTRAINT `maquina_ibfk_4` FOREIGN KEY (`idOS`) REFERENCES `os` (`idOS`),
CONSTRAINT `maquina_ibfk_5` FOREIGN KEY (`idCPU`) REFERENCES `cpu` (`idCPU`),
CONSTRAINT `maquina_ibfk_6` FOREIGN KEY (`idEstado`) REFERENCES `estado` (`idEstado`)
) ENGINE=InnoDB AUTO_INCREMENT=500 DEFAULT CHARSET=latin1 |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  #18 (permalink)  
Antiguo 03/02/2010, 14:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Exacto. Eso era.

Ahora bien, ¿cuál fue la sentencia que estabas ejecutando y te causó el error?

Postea la sentencia entera.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 03/02/2010, 14:11
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

estaba haciendolo con phpmyadmin
queria copiar de una base de datos a otra una tabla y me salia eso

#1217 - Cannot delete or update a parent row: a foreign key constraint fails
  #20 (permalink)  
Antiguo 03/02/2010, 14:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Sigo, porque recién me percato de lo que decía exactamente el primer post.

Fijate que la propia creación de esa tabla ya te da la pauta cuando dice:
Código MySQL:
Ver original
  1. CONSTRAINT `maquina_ibfk_1` FOREIGN KEY (`idModeloMaquina`) REFERENCES `modeloMaquina` (`idModeloMaquina`),
  2. CONSTRAINT `maquina_ibfk_2` FOREIGN KEY (`idAreaMaquina`) REFERENCES `areaMaquina` (`idAreaMaquina`),
  3. CONSTRAINT `maquina_ibfk_3` FOREIGN KEY (`idProveedor`) REFERENCES `proveedor` (`idProveedor`),
  4. CONSTRAINT `maquina_ibfk_4` FOREIGN KEY (`idOS`) REFERENCES `os` (`idOS`),
  5. CONSTRAINT `maquina_ibfk_5` FOREIGN KEY (`idCPU`) REFERENCES `cpu` (`idCPU`),
  6. CONSTRAINT `maquina_ibfk_6` FOREIGN KEY (`idEstado`) REFERENCES `estado` (`idEstado`)
Esto nos indica que hay seis dependencias de este registro a seis tablas diferentes (modeloMaquina, areaMaquina, proveedor, os, cpu, estado).
El problema es que no puedes importar un registro a esta tabla, si al menos uno de los valores que aparecen en ese registro en esos seis (6) campos no se encuentra ya en su tabla.
Esa es la función de esa restricción: Que no se puedan ingresar valores inválidos o nulos en campos declarados como FK...

Simplificando: Si quieres importar esa tabla, primero tienes que aseguarte de importar los valores de las tablas que corresponden a modeloMaquina, areaMaquina, proveedor, os, cpu, estado.
Caso contrario, el sistema no te dejará ingresarlos porque violan la integridad referencial.

¿Se entiende el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #21 (permalink)  
Antiguo 03/02/2010, 14:16
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

si te entiendo
y si copiara la base de datos completa? puede que no me ocurra esto?
  #22 (permalink)  
Antiguo 03/02/2010, 14:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Puede que no, pero habitualmente eso significará que perderás todos los datos previos en tu base, los que serán reemplazados por los que están en la base importada.

¿No te parece que sería más sencillo importar una a una las tablas de datos que necesitas en el orden correcto?

Pareciera que quieres resolver las cosas a hachazos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #23 (permalink)  
Antiguo 03/02/2010, 14:32
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

no no es eso
si preguntaba si igual es mejor por tabla pq no puedo perder la info

bueno vere como me va
  #24 (permalink)  
Antiguo 03/02/2010, 14:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Mi sugerencia es que hagas la importación de las tablas necesarias a una base intermedia temporal, y desde allí veas cuales son los datos que necesitas importar a las tablas primarias antes de pensar en trasladar la principal.
O sea, necesitas migrar los datos con cuidado.
No lo hagas a la base de datos final. Haz una copia de esa y prueba con la copia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #25 (permalink)  
Antiguo 04/02/2010, 07:46
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

si copio una tabla usando
CREATE TABLE copiaos AS (SELECT *FROM os);
me sale error
ERROR 3 (HY000): Error writing file './xx/copiaos.frm' (Errcode: 28)

segun lo que vi ese error es por espacio en el servidor

tampoco puedo sikiera crear una tabla
estoy creandola asi
mysql> CREATE TABLE m(
-> nombre VARCHAR(20),
-> apellido VARCHAR(20)
-> );
me sale este error el mismo error

  #26 (permalink)  
Antiguo 04/02/2010, 07:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Dije copiar la base, no copiar la tabla.
Usa el PhpMyAdmin o lo que sea y haz un backup de la base que quieres copiar. Luego restaurala en otro sitio, en una base con otro nombre.
Luego has lo mismo con tu base y con la copia de ambas haz las pruebas de traslado de datos.

Siempre tendrás los backup para volver a empezar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #27 (permalink)  
Antiguo 04/02/2010, 08:53
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

pero si tengo malo el phpmyadmin
y la consola no me deja cambiar nada
solo ver pero no puedo borrar agregar ni nada
  #28 (permalink)  
Antiguo 04/02/2010, 09:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cannot delete or update a parent row: a foreign key constraint fails

Cita:
Iniciado por d4n13l4 Ver Mensaje
pero si tengo malo el phpmyadmin
y la consola no me deja cambiar nada
solo ver pero no puedo borrar agregar ni nada
Entonces instala las GUI de MySQL, que son bastante mejores, aunque un poco menos amigables, y usalas.
Otra opción es usar el Navicat, por ejemplo.
También puedes usar el MySQL WorkBench o usar directamente el mysqldump.exe desde consola de sistema (no MySQL) para generar el backup...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: constraint, delete, key, parent, row, update, foreignkey
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 15:06.