MariaDB - Error 1064 con foreing key

 
Vista:
sin imagen de perfil
Val: 12
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por Cristóbal (5 intervenciones) el 28/05/2019 19:34:58
Estimados tengan un buen día

les comento el contexto de problema. Estoy iniciando con mysql, para esto estoy usando MySQL Workbench y XAMPP, hasta ahí todo bien, sin embargo he hecho un modelo y al crear la base de datos en maríaDB me aparece el siguiente error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
  INDEX `Fk_Parametros_Modulo_idx` (`IdModulo` ASC) VISIBLE,
  CONSTRAINT `Fk_P' at line 9
SQL Code:
        -- -----------------------------------------------------
        -- Table `Serviges`.`tb_Parametros`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `Serviges`.`tb_Parametros` (
          `IdParametros` VARCHAR(10) NOT NULL,
          `IdEmpresa` VARCHAR(10) NOT NULL,
          `IdModulo` VARCHAR(5) NOT NULL,
          PRIMARY KEY (`IdParametros`),
          INDEX `Fk_Parametros_Empresa_idx` (`IdEmpresa` ASC) VISIBLE,
          INDEX `Fk_Parametros_Modulo_idx` (`IdModulo` ASC) VISIBLE,
          CONSTRAINT `Fk_Parametros_Empresa`
            FOREIGN KEY (`IdEmpresa`)
            REFERENCES `Serviges`.`tb_Empresas` (`IdEmpresa`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `Fk_Parametros_Modulo`
            FOREIGN KEY (`IdModulo`)
            REFERENCES `Serviges`.`tb_Modulos` (`IdModulo`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB
 
SQL script execution finished: statements: 7 succeeded, 1 failed
 
Fetching back view definitions in final form.
Nothing to fetch

he googleado y revisado las llaves foraneas de la tabla y no encuentro nada que me ayude a solucionar el problema. intenté cambiando el nombre de las llaves foraneas para ver si estaba usando una palabra reservada y el mismo problema, también eliminé las llaves foraneas y crea la tabla, pero, luego empiezo a tener el mismo error con las otras tablas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 48
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por joel (17 intervenciones) el 28/05/2019 20:51:57
Hola Cristóbal, quita el "VISIBLE" en los INDEX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por Cristóbal (5 intervenciones) el 28/05/2019 21:24:30
Joel, el error persiste te muestro el mensaje

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
  INDEX `Fk_Parametros_Modulo_idx` (`IdModulo` ASC) INVISIBLE,
  CONSTRAINT `Fk' at line 9
SQL Code:
        -- -----------------------------------------------------
        -- Table `Serviges`.`tb_Parametros`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `Serviges`.`tb_Parametros` (
          `IdParametros` VARCHAR(10) NOT NULL,
          `IdEmpresa` VARCHAR(10) NOT NULL,
          `IdModulo` VARCHAR(5) NOT NULL,
          PRIMARY KEY (`IdParametros`),
          INDEX `Fk_Parametros_Empresa_idx` (`IdEmpresa` ASC) INVISIBLE,
          INDEX `Fk_Parametros_Modulo_idx` (`IdModulo` ASC) INVISIBLE,
          CONSTRAINT `Fk_Parametros_Empresa`
            FOREIGN KEY (`IdEmpresa`)
            REFERENCES `Serviges`.`tb_Empresas` (`IdEmpresa`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `Fk_Parametros_Modulo`
            FOREIGN KEY (`IdModulo`)
            REFERENCES `Serviges`.`tb_Modulos` (`IdModulo`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB
 
SQL script execution finished: statements: 7 succeeded, 1 failed
 
Fetching back view definitions in final form.
Nothing to fetch
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 48
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por joel (17 intervenciones) el 29/05/2019 07:49:42
jajajaja... ahora quita el INVISIBLE!!!!

Así a mi me ha funcionado:
1
2
3
4
...
INDEX `Fk_Parametros_Empresa_idx` (`IdEmpresa` ASC),
INDEX `Fk_Parametros_Modulo_idx` (`IdModulo` ASC),
....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por Cristóbal (5 intervenciones) el 29/05/2019 16:38:56
Estimado Joel, espero con esto no ser un candidato a Viernes de MEME.... ja ja ja ja ja ja

pues bien, seguí buscando alternativas y quiero aportar dos puntos que ayudan a esta solución
1.- La versión de María DB que estaba usando es incompatible con la opción VISIBLE/INVISIBLE de MySQL Worqbench. por lo tanto decidí cambiar a MySQL debido a que WORQBENCH es una herramienta hecha para MySQL. .
Cuando cambié de María DB a MySQL también cambié de XAMPP a WAMP Server, no estoy con esto diciendo que WAMP Server sea mejor, fué solo por que la última versión de XAMPP ya no tiene MySQL. al realizar este cambio y volver a publicar, adivinen, el error continuó . por esto seguí intruseando google y encontré lo que anoto en el punto 2

2.- Al iniciar el modelo en mysql Workbench es necesario parametrizar la versión de MySQL que están usando, para esto hay que ir a menú model/Model Options... ya en la ventana ir a la opción MySQL y en la casilla Target MySQL Version: digite la versión de MySQL que está usando (Pantalla1). en mi caso con esto desactivó el visible al publicar y por supuesto también al modelar.
Para saber cual es la versión de MySQL que se está usando en PhpMyAdmin en la página de inicio en la sección Servidor de Base de datos está la versión de MySQL usada (Pantalla 2).


Pantalla 1
Captura1


Pantalla 2
Captura2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de joel
Val: 48
Ha mantenido su posición en MariaDB (en relación al último mes)
Gráfica de MariaDB

Error 1064 con foreing key

Publicado por joel (17 intervenciones) el 29/05/2019 18:42:10
Gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error 1064 con foreing key

Publicado por Ranffy (1 intervención) el 19/12/2022 01:40:44
Efectivamente el problema esta en la versión. gracias por tu aporte; me funcionó con la versión 6.3.8 de 64 bits, donde se elimina la palabra invisible; hice las relaciones por medio de tablas para que me genere el código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar