mysql workbench生成的sql代码中出现错误1064

bvjxkvbb  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(580)

我在mysql工作台中创建第一个表时遇到了一个小问题。当我创建两个表并查看正向工程进度时,我得到如下消息:
在服务器中执行sql脚本错误:错误1064:您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,了解使用“index”附近的正确语法 fk_person_has_user_person_idx ( person_ID asc)可见,第8行的“约束”
sql代码:

  1. -- -----------------------------------------------------
  2. -- Table `customers`.`person_has_user`
  3. -- -----------------------------------------------------
  4. CREATE TABLE IF NOT EXISTS `customers`.`person_has_user` (
  5. `person_ID` INT NOT NULL,
  6. `user_person_ID` INT NOT NULL,
  7. PRIMARY KEY (`person_ID`, `user_person_ID`),
  8. INDEX `fk_person_has_user_user1_idx` (`user_person_ID` ASC) VISIBLE,
  9. INDEX `fk_person_has_user_person_idx` (`person_ID` ASC) VISIBLE,
  10. CONSTRAINT `fk_person_has_user_person`
  11. FOREIGN KEY (`person_ID`)
  12. REFERENCES `customers`.`person` (`ID`)
  13. ON DELETE NO ACTION
  14. ON UPDATE NO ACTION,
  15. CONSTRAINT `fk_person_has_user_user1`
  16. FOREIGN KEY (`user_person_ID`)
  17. REFERENCES `customers`.`user` (`person_ID`)
  18. ON DELETE NO ACTION
  19. ON UPDATE NO ACTION)
  20. ENGINE = InnoDB
  21. SQL script execution finished: statements: 7 succeeded, 1 failed
  22. Fetching back view definitions in final form.
  23. Nothing to fetch

有人能解释一下吗?

js5cn81o

js5cn81o1#

埃德·科特雷尔是对的。这是mysql服务器版本和mysql工作台设置之间的版本不匹配。
SELECT VERSION(); 让你的服务器告诉你它的版本。
在workbench中,编辑/preferences/modeling>mysql,并将默认的目标mysql版本设置为您的服务器版本。
然后workbench将生成适合您实际使用的服务器的代码。
这个错误很可能发生在新用户身上;新下载的workbench软件默认设置为MySQL8,但是世界上很多服务器还没有安装版本8。

相关问题