Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/08/2013, 09:55
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 2 meses
Puntos: 447
Respuesta: Problema con los índices

Hola replica:

Lamentablemente, no hay mucho para ayudarte sin saber tu modelo y cómo afectan los nuevos cambios que tienes que introducir a la BD... sin embargo, algunos tips:

primero:

Cita:
Pues el caso es que no puedo relacionar las tablas, me da problemas (phpmyadmin no me dice cuál.
puedes comenzar por cambiar de IDE, es decir, si phpmyadmin es el problema, entonces has las modificaciones con otros administradores (Workbench, SQLYog, o mejor aun, directamente en una consola de MySQL)... de esta manera es posible que obtengas más información acerca del error que está ocurriendo.

Segundo:

Cita:
sí que he intentado borrar claves que ya tenía, para intentar incluir las nuevas.

Pues no puedo borrar las claves antiguas, esta vez sí me dice que es por integridad referencial.
Una alternativa efectivamente es borrar todas las referencias y los índices para comenzar de "cero", pero si tienes información en tus tablas, debes tener cuidado en el orden en que eliminas estos índices y referencias... así, si tienes una dos tablas maestro-detalle, con una referencia FK, lo que tienes que hacer es eliminar primero la referencia FK de tu tabla detalle y en seguida borrar el índice de tu tabla maestro. Si intentas borrar en primer lugar tu índice de la tabla Maestro, entonces te marcará error de integridad.

Tercero:

Código MySQL:
Ver original
  1. Necesito alguna forma de cargarme todas las relaciones de todas las tablas, incluso la definición de las claves primarias (me jode, pero me aguanto), para hacerlas todas desde 0.

Serenidad y paciencia, y mucho cuidado con el uso del lenguaje... en algunos países de latinoamérica tal como te expresas es realmente ofensivo, ojo con eso... Insisto en lo que puse arriba, si ya tienes información en tus tablas y no quieres perder esta información, entonces el proceso de modificar tu modelo puede resultar bastante complicado.

La solución más simple sería:

1. Borrar en primer lugar toda la información de tus tablas, sobre todo la de aquellas que tienen relaciones de llave foránea

2. Borrar (si es necesario) las restricciones FK de estas tablas.

3. Borrar (si es necesario) las restricciones PK de las tablas.

4. Incluir los nuevos índices

5. Reconstruir las restricciones de FK.

6. Cargar nuevamente los datos a tus tablas.

Ahora bien, si no quieres (o no puedes) borrar la información de tus tablas, otra opción es que manejes un esquema "alterno" donde coloques las nuevas restricciones-relaciones. Una vez que tengas el modelo alterno ya modificado y con todas las restricciones-relaciones, entonces intentar "vaciar" el contenido de tu modelo viejo en el nuevo... cuidando por supuesto las nuevas restricciones de integridad... esto te puede llevar un tiempo, pero una vez que lo hagas, simplemente borras tu esquema viejo y renombras tus tablas...

Es un camino largo, pero igual y te puede ayudar.

Saludos
Leo.