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

MySQL Error Number 1217

Estas en el tema de MySQL Error Number 1217 en el foro de Mysql en Foros del Web. Hola, Les ha pasado alguna vez? Resulta que tengo una bbdd con 81 objetos entre tablas y vistas. Quiero eliminar una tabla de la cual ...
  #1 (permalink)  
Antiguo 27/03/2010, 06:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
MySQL Error Number 1217

Hola,

Les ha pasado alguna vez?

Resulta que tengo una bbdd con 81 objetos entre tablas y vistas.

Quiero eliminar una tabla de la cual he eliminado todo los campos excepto la primary key, todas las FK, he repasado todo el script de backup en busca de referencias a la tabla o a su clave principal...nada!!!

Pero mysql insiste que no puede borrar la tabla porque falla una fK.

Cita:
ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
Alguna idea??

Quim
  #2 (permalink)  
Antiguo 27/03/2010, 08:43
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: MySQL Error Number 1217

Si. Lo que te dice MYSQL es muy claro: Tienes alguna(s) tabla(s) que usan esa PK como FK, y hasta que no las "desenganches" no vas a poder eliminar esa tabla.

Eso se llama "restricción de integridad referencial"...

Busca qué tablas usan esa PK como FK y borra la referencia de FOREIGN KEY de cada una de ellas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/03/2010, 10:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: MySQL Error Number 1217

Cita:
Quiero eliminar una tabla de la cual he eliminado todo los campos excepto la primary key, todas las FK, he repasado todo el script de backup en busca de referencias a la tabla o a su clave principal...nada!!!
Gracias gnzsoloyo, pero si ya se que me quiere decir mysql, el problema es que no veo ninguna tabla con esa referencia.

Las que tenian referencias a la tabla las he redireccionado a la tabla que la va a sustituir... y de hecho haciendo una copia de la bbdd sin esa tabla no da ningún error... pero preferiria poder eliminarla de forma normal.

Sigo buscando...

Quim
  #4 (permalink)  
Antiguo 27/03/2010, 13:52
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: MySQL Error Number 1217

Sigue buscando, porque por lo menos debe haber una...
Esto te puede ayudar:
Código MySQL:
Ver original
  1.   REFERENCED_TABLE_SCHEMA,
  2.   REFERENCED_TABLE_NAME,
  3.   REFERENCED_COLUMN_NAME
  4. FROM KEY_COLUMN_USAGE K
  5.   TABLE_NAME = NOMBREDELATABLA
  6.   AND TABLE_SCHEMA = NOMBREDELABASE;
Donde NOMBREDELATABLA es el nombre de la tabla a borrar y NOMBREDELABASE el nombre de la base a que pertenece.
Esta consulta devolverá la lista de bases, tablas y campos que tienen una FK referida a la tabla NOMBREDELATABLA
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/03/2010, 14:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: MySQL Error Number 1217

Todo null !!!

Otra idea?

Quim
  #6 (permalink)  
Antiguo 27/03/2010, 15:40
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: MySQL Error Number 1217

Probemos:
- Si la tabla contiene datos, vacíala.
Código MySQL:
Ver original
  1. TRUNCATE tabla;
y luego trata de eliminarla.
- Prueba al revés la sentencia (puede que me haya equivocado):
Código MySQL:
Ver original
  1.   TABLE_SCHEMA,
  2.   TABLE_NAME
  3. FROM KEY_COLUMN_USAGE K
  4.   REFERENCED_TABLE_NAME = NOMBREDELATABLA
  5.   AND REFERENCED_TABLE_SCHEMA = NOMBREDELABASE;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 28/03/2010, 03:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: MySQL Error Number 1217

Tampoco, y si ya esta vacía...

Tendre que duplicar es schema sin esa tabla... parece que no da errores...

Grácias

Quim
  #8 (permalink)  
Antiguo 28/03/2010, 07: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: MySQL Error Number 1217

Dos últimos detalles:
1) ¿Hay VIEWs definidas en tu base que hayan usado esa tabla?
2) Utiliza esto y veamos cómo resulta:
Código MySQL:
Ver original
  1. SET FOREIGN_KEY_CHECKS=0;
  2.  
  3. DROP TABLE tabla;
  4.  
  5. SET FOREIGN_KEY_CHECKS=1;
Todo esto a nivel de consola.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 28/03/2010, 16:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: MySQL Error Number 1217

2.En el MySQL Query Browser no funciona... mañana lo intento desde la consola.

1.Si hay vistas que usaban esa tabla... pero las he redefinido.

Gracias por el interes.

Quim
  #10 (permalink)  
Antiguo 29/03/2010, 09:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: MySQL Error Number 1217

Ahora si!!!!

Pero claro desactivando los Key_Checks tenia que funcionar....

Me gustaria saber que provocaba el error....

Quim

Etiquetas: number
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:15.