2012-06-23 23 views
18

Tengo un problema con MySQL Workbench porque a veces no puedo establecer claves externas al crear tablas. Digo a veces porque no siempre es así. El problema es que cuando ingreso un FK y elijo una tabla de referencia, no puedo elegir una columna referenciada. No puedo hacer clic en la casilla de verificación y la lista desplegable está vacía. Realmente no puedo entender cuál es el problema porque no veo una diferencia real con los FK que están funcionando. He verificado el tipo de datos, el nombre, etc. y son correctos. Proporcionaré un SS para elaborar. La tecla verde marcada (id_hem) está funcionando bien y las marcas rojas son las que no.

Screenshot of WBNo se puede establecer una relación de clave externa

Respuesta

4

que tenían el mismo problema y el problema estaba en los índices de clave externa. MySQL workbench genera nombres demasiado largos para índices fk a veces. La corrección manual ayuda.

+4

¿Podría por favor agregar algo de información sobre cómo y cómo corregir esto manualmente? –

1

id_familjer es una clave principal? configurarlo.
La columna a la que se hace referencia solo muestra la clave primaria de la tabla familjer.

+0

Sí, es un PK. – Sandokan

6

Tuve el mismo problema ... luego revisé las dos tablas ... El problema era el tipo, debería coincidir en ambas tablas.

si en foralda columna de la tabla id_familjer es (INT)
en la columna de tabla fkblixten id_familjer también debe ser ser (INT). si los dos tipos de datos no concuerdan, MySQL Workbench no permitirá seleccionar la columna como clave externa.

29

Sé que esto es viejo, pero los culpables habituales son Non Null bandera y Unsigned. Asegúrese de hacer coincidir estos en la columna de clave externa si la columna referenciada los tiene habilitados.

+1

¡Esto realmente me ahorró tiempo! – akshay1188

+0

Este fue mi problema. ¡Gracias! Había configurado el NN y Unsigned en la clave principal, pero se olvidó de la clave externa antes de establecer la restricción – nils

+2

Es por eso que me encanta SO. ¡3 años después y alguien descubre qué causa un error que todavía no se ha solucionado y lo resuelve! TY – hammus

2

Puede deberse también a diferentes intercalaciones. Solo verifica si esas 2 columnas tienen la misma intercalación.

En mi caso se encontró con

por defecto Tabla (usando utf8 general)

el otro con

utf8_unicode_ci

he puesto los 2 columnas con utf8_unicode_ci y funciona.

1

La clave externa debe tener las mismas constantes similares a la clave primaria. Puede ignorar AI, clave principal. Si la clave primaria tiene interfaz de usuario, extranjero también debe tener la interfaz de usuario

UI-> Sin signo número entero AI-> Incremento automático

0

En mi caso, puedo cambiar el 'cotejo' en cada columnas que desea establecer las claves foráneas

Por ejemplo, la intercalación de columnas My FK es 'utf8', también cambio mi tabla de referencia en 'utf8' también. Y está resuelto mi problema.

Espero que sea útil.

0

También para agregar mis dos centavos, esto también ocurre si está haciendo diagramas EER en el mismo espacio de nombres de base de datos y dos o más diagramas contienen una tabla con el mismo nombre.

Si intenta hacer una relación con una tabla (que también existe en otro diagrama con el mismo nombre) aparecerá dos veces en la tabla de referencia, ambos se refieren a su esquema de diagrama actual y no lo hará te permite establecer una relación.

La solución es cambiar el nombre de la tabla en el otro diagrama.

Cuestiones relacionadas