使用外键创建表时出错

w9apscun  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(312)

像这样的问题很多,但我在其中找不到答案。
你能告诉我这里怎么了吗?这个脚本是由mysql workbench创建的,但是除了答案之外,它没有

  1. -- MySQL Script generated by MySQL Workbench
  2. -- Mon Nov 26 14:14:46 2018
  3. -- Model: New Model Version: 1.0
  4. -- MySQL Workbench Forward Engineering
  5. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  6. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  7. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
  8. -- -----------------------------------------------------
  9. -- Schema mydb
  10. -- -----------------------------------------------------
  11. -- -----------------------------------------------------
  12. -- Schema mydb
  13. -- -----------------------------------------------------
  14. CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
  15. USE `mydb` ;
  16. -- -----------------------------------------------------
  17. -- Table `mydb`.`Owner`
  18. -- -----------------------------------------------------
  19. DROP TABLE IF EXISTS `mydb`.`Owner` ;
  20. CREATE TABLE IF NOT EXISTS `mydb`.`Owner` (
  21. `OwnerId` CHAR(36) NOT NULL,
  22. `Name` NVARCHAR(60) NOT NULL,
  23. `DateOfBirth` DATE NOT NULL,
  24. `Adress` NVARCHAR(100) NOT NULL,
  25. PRIMARY KEY (`OwnerId`))
  26. ENGINE = InnoDB;
  27. -- -----------------------------------------------------
  28. -- Table `mydb`.`Account`
  29. -- -----------------------------------------------------
  30. DROP TABLE IF EXISTS `mydb`.`Account` ;
  31. CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
  32. `AccountId` CHAR(36) NOT NULL,
  33. `DateCreated` DATE NOT NULL,
  34. `AccountType` VARCHAR(45) NOT NULL,
  35. `OwnerId` CHAR(36) NULL,
  36. PRIMARY KEY (`AccountId`),
  37. INDEX `fk_Account_Owner_idx` (`OwnerId` ASC) VISIBLE,
  38. CONSTRAINT `fk_Account_Owner`
  39. FOREIGN KEY (`OwnerId`)
  40. REFERENCES `mydb`.`Owner` (`OwnerId`)
  41. ON DELETE RESTRICT
  42. ON UPDATE CASCADE)
  43. ENGINE = InnoDB;
  44. SET SQL_MODE=@OLD_SQL_MODE;
  45. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  46. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

给定的错误是
错误代码:1064。sql语法有错误;检查手册
与mariadb服务器版本相对应,以便使用near'constraint的正确语法 fk_Account_Owner 外键( OwnerId )
第7行引用“myd”

gorkyyrv

gorkyyrv1#

又一个需要摆脱这个词的例子 VISIBLE .

wfauudbj

wfauudbj2#

在mysql workbench中:
去:
编辑>首选项>建模>mysql。
然后,将“default target mysql version”设置为5.7
从https://stackoverflow.com/a/52785302/2625955

相关问题