"Seleccione el mismo número de fuente y referencia" en SQLYOG
-
24-09-2019 - |
Pregunta
Estoy tratando de agregar una restricción de clave extranjera a través de SQLYOG y obtener este error, aunque solo soy una fuente y una columna de referencia
Seleccione el mismo número de fuente y referencia
¿Alguien sabe lo que significa en este caso? Tenga en cuenta que tengo un número igual de columnas de origen y referencia ...
Solución
Encontré el mismo problema con SQLYOG V9.01. El mensaje de error es engañoso y la causa real de un error puede ser totalmente diferente.
Las cosas que revisé para resolver esto son las siguientes:
- Tipos de Ingyne de mesa de verificación debe ser tanto innodb
- Compruebe si su tabla de destino no es la misma que la fuente.
- Verifique los tipos de datos, la longitud y la recopilación de charset de campos referenciados.
- Si ya tiene datos en sus tablas, verifique su consistencia.
Por ejemplo, debe eliminar todos los datos no relacionados de la Tabla B que se relaciona con la Tabla A
DELETE target FROM B AS target LEFT JOIN A USING(id_A) WHERE A.id_A IS NULL
- Finalmente, en mi caso, tuve que enjuagar las tablas para crear mis restricciones con éxito.
La creación de restricciones manuales desde la ventana de consulta puede brindarle más información sobre su tipo de error.
Simplemente un recordatorio:
ALTER TABLE `B` ADD CONSTRAINT `FK_B` FOREIGN KEY (`id_A`) REFERENCES `A` (`id_A`) ON DELETE CASCADE ;
¡Buena suerte!