【问题标题】:Mysql Workbench Can't Select Foreign KeyMysql Workbench 无法选择外键
【发布时间】:2015-08-29 08:10:32
【问题描述】:

首先,我检查了很多问题并用谷歌搜索了很多,但没有一个能解决我的问题..

我正在使用 Mysql Workbench 6.3 创建我的表。我只使用 gui 而不是单个查询来创建它们。之后,我尝试为 int(11) 列创建一些外键,但 GUI 不允许我这样做。

这是我的Show Create Table 'tableName'

CREATE TABLE `item` (
  `id` int(11) NOT NULL,
  `description` varchar(300) NOT NULL,
  `maker` varchar(200) NOT NULL,
  `model` varchar(200) NOT NULL,
  `condition` varchar(200) NOT NULL,
  `locationId` int(11) NOT NULL,
  `categoryId` int(11) NOT NULL,
  `userId` int(11) NOT NULL,
  `lendTermsId` int(11) NOT NULL,
  `itemOptionsId` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

还有一个;

CREATE TABLE `location` (
  `id` int(11) NOT NULL,
  `type` varchar(200) NOT NULL,
  `coordinateLat` varchar(200) NOT NULL,
  `coordinateLong` varchar(45) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我正在尝试在location.id 和item.locationId 之间创建一个外键。 工作台 GUI 不允许我选择复选框...

从这张图片中可以看出,我无法选择复选框或选择组合框值..

编辑:我可以用查询来管理这个,但是在一些项目中有很多表,不想用查询来做这一切......我有什么遗漏的吗工作台?

提前致谢。

【问题讨论】:

  • 似乎是 Workbench 的一个错误。但是,一旦我将键列从 CHAR 列切换到 BINARY 列,Workbench 允许我毫无问题地使用外键。

标签: mysql mysql-workbench mysql-error-1064


【解决方案1】:

正如 user4115463 所说,这是由 DataType 的差异引起的。确保两个键具有完全相同的数据类型:

  • Datatype 字段应包含完全相同的字符串(INT 和 INT(10)不相同)
  • B(是二进制)复选框应该匹配
  • UN(未签名)复选框应该匹配

选择复选框时,MySQL Workbench尝试填充带有匹配列的复选框旁边的下拉列表,如果找不到任何匹配列,它决定默默地忽略单击复选框。

> 。

【讨论】:

    【解决方案2】:

    回答这个问题可能有点晚了,但是, 最近在Workbench GUI中遇到这个问题,是DataType不同造成的。

    确保两个字段具有相同的 DataType 似乎可以解决问题。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      试试下面的 Alt 语句

       ALTER TABLE `emp`.`item` 
      ADD INDEX `location_idx` (`categoryId` ASC);
      ALTER TABLE `emp`.`item` 
      ADD CONSTRAINT `location`
        FOREIGN KEY (`categoryId`)
        REFERENCES `emp`.`location` (`id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION;
      

      我已经通过 GUI 测试了检查这个截图

      【讨论】:

      • 感谢您的帮助,但我已经知道如何使用查询,我的问题在于 GUI。工作台中是否缺少我的东西
      • 这真的很奇怪你用的是哪个版本的工作台?
      猜你喜欢
      • 2020-08-14
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2012-09-04
      • 2014-08-03
      • 1970-01-01
      • 2021-03-29
      相关资源
      最近更新 更多