MySQL 尝试正向工程时出现错误 1064

Error 1064 in MySQL trying Forward Engineering

我是 MySQL 的新手,当我尝试执行 "Forward Engineer" 时遇到了这个错误:

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 '
  CONSTRAINT `fk_Vendite_Prodotti`
    FOREIGN KEY (`Prodotti_idProdotti`)
    ' at line 11
SQL Code:
        -- -----------------------------------------------------
        -- Table `mydb`.`Vendite`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `mydb`.`Vendite` (
          `idVendite` INT NOT NULL,
          `dataVendita` DATETIME NULL,
          `qta` INT NULL,
          `costo` FLOAT NULL,
          `Prodotti_idProdotti` INT NOT NULL,
          PRIMARY KEY (`idVendite`),
          INDEX `fk_Vendite_Prodotti_idx` (`Prodotti_idProdotti` ASC) VISIBLE,
          CONSTRAINT `fk_Vendite_Prodotti`
            FOREIGN KEY (`Prodotti_idProdotti`)
            REFERENCES `mydb`.`Prodotti` (`idProdotti`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

SQL script execution finished: statements: 6 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

我知道有很多关于此主题的问题,但我发现它非常具体。我也是 SQL 的新手,我不知道问题出在哪里

就目前而言,MariaDB 不支持不可见索引(只有 MySQL 8.0 支持),所以错误来自使用 VISIBLE 关键字。

既然索引默认是可见的,我建议只删除它:

CREATE TABLE IF NOT EXISTS `mydb`.`Vendite` (
      `idVendite` INT NOT NULL,
      `dataVendita` DATETIME NULL,
      `qta` INT NULL,
      `costo` FLOAT NULL,
      `Prodotti_idProdotti` INT NOT NULL,
      PRIMARY KEY (`idVendite`),
      INDEX `fk_Vendite_Prodotti_idx` (`Prodotti_idProdotti`),
      CONSTRAINT `fk_Vendite_Prodotti`
        FOREIGN KEY (`Prodotti_idProdotti`)
        REFERENCES `mydb`.`Prodotti` (`idProdotti`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION
) ENGINE = InnoDB