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
我是 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