Tengo algún problema con MySQL Workbench en que yo a veces no se puede establecer el extranjero claves a la hora de crear las tablas. Yo digo a veces la causa no siempre es así. La cosa es que cuando entro en una FK y elegir una tabla de referencia que no puedo coger una columna referenciada. Yo no haga clic en la casilla de verificación y el desplegable de la lista está vacía. Realmente no puedo averiguar cuál es el problema porque veo ninguna diferencia real de la FK de la que están trabajando. He comprobado tipo de datos, nombre, etc y están en lo correcto. Voy a ofrecer un SS a elaborar. El verde marcada clave (id_hem) está funcionando bien y las marcas en rojo son aquellos que no.

No se puede establecer una relación de clave externa

InformationsquelleAutor Sandokan | 2012-06-23

10 Comentarios

  1. 1

    Yo tenía el mismo problema y el problema estaba en el extranjero índices de clave. MySQL workbench, se genera un exceso de nombres largos para fk índices a veces. Manual de corrección de ayuda.

    • Podría usted por favor, añadir algo de información sobre yhow manualmente corregir esto?
    • Generar secuencia de comandos SQL y, a continuación, actualizar manualmente demasiado larga índice de nombres en su editor favorito.
  2. 42

    Sé que esto es viejo, pero los culpables de costumbre se Non Null bandera y Unsigned. Asegúrese de hacer coincidir estas en la columna de clave externa si la columna referenciada tiene habilitadas.

    • Este era mi problema. Gracias! Había establecido la NN y sin firmar en la clave primaria, pero se olvidó en la clave externa, antes del establecimiento de la restricción
    • Esta es la razón por la que amo tanto. 3 años y alguien averigua lo que provoca un error por el que todavía no ha sido solucionado y lo soluciona! TY
    • Otra razón podría ser diferente de la tabla intercalaciones.
  3. 8

    Tuve el mismo problema.. luego he comprobado las dos tablas.. El problema era el tipo, se debe coincidir en ambos dos tablas.

    si en foralda columna de la tabla id_familjer es (INT)

    en fkblixten columna de la tabla id_familjer también debe ser (INT). si los dos tipos de datos no son coincidentes MySQL Workbench no permiten seleccionar la columna como clave externa.

  4. 6

    Puede ser también debido a los diferentes intercalaciones. Compruebe si los 2 columnas tienen la misma intercalación.

    En mi caso uno de ellos fue con

    Predeterminados de la tabla (usando utf8 general)

    el otro con

    utf8_unicode_ci

    He puesto los 2 columnas con utf8_unicode_ci y funciona.

  5. 1

    id_familjer es una clave principal? conjunto de la misma.

    La Columna Referenciada sólo mostrar el familjer tabla de clave principal.

    • Sí, es un PK.
  6. 1

    Clave externa debe tener la misma constantes similares a los de clave Principal. Usted puede ignorar AI ,Clave Principal.
    Si la clave Principal tiene una interfaz de usuario , los extranjeros también deben tener interfaz de usuario

    UI-> Unsigned Interger
    AI-> Incremento Automático

  7. 0

    En mi caso, puedo cambiar el «intercalación» en cada una de las columnas que quiero establecer las claves externas.

    Por ejemplo, Mi FK intercalación de la columna es ‘utf8’, yo también cambio mi tabla de referencia en ‘utf8’ demasiado. Y es resuelto mi problema.

    Espero que sea útil.

  8. 0

    También añadir mi granito de arena, esto también sucede si usted está haciendo diagramas EER en la misma base de datos de nombres y dos o más diagramas de contener una tabla con el mismo nombre.

    Así que si usted ha intentado realizar una relación con una tabla (que también existe en el otro diagrama con el mismo nombre) se mostrará como dos veces en la tabla de referencia, consulte el diagrama actual esquema y no permiten establecer una relación.

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

  9. 0

    Asegúrese de que los tipos de datos son los mismos en ambas tablas, como si uno dice int y el otro es int(6) no lo puedo trabajar como uno tiene un límite. He tenido este problema y que es como me fijo.

  10. 0

    Aceptado en respuesta corrección Manual en el sentido de:
    Primero crear un índice de referencia clave en la tabla de referencia. (puedes hacerlo en la pestaña índices disponibles en cada mesa).
    Luego, después de hacer clic en aplicar ( incluso sin seleccionar columna referenciada) cambie el código en la aplicarán en consecuencia.

    ejemplo:

    ALTER TABLE `SCHEMA_NAME`.`SECOND_TABLE_NAME` (we are creating foreign key in this second table)
    ADD CONSTRAINT `FOREIGN_KEY_NAME`
      FOREIGN KEY (`COLUMN_IN_SECOND_TABLE`)
      REFERENCES `SCHEMA_NAME`.`FIRST_TABLE_NAME` (`COLUMN_IN_FIRST_TABLE`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION;
    
    • Sí, un script es lo que finalmente funcionó para mí y la manera más fácil de crear es crear un nuevo modelo, volver a crear todas las tablas en cuestión y sus relaciones en que, finalmente, han workbench generar la secuencia de comandos para el uso de la ingeniería directa (se detiene simplemente en la revisión de la secuencia de comandos de fase y recoger el SQL y limpiar el material innecesario porque también se intenta crear un esquema y todos los mencionados tablas).

Dejar respuesta

Please enter your comment!
Please enter your name here