将外键添加到现有表会导致错误 1050 表已存在

本教程将介绍将外键添加到现有表会导致错误 1050 表已存在的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

将外键添加到现有表会导致错误 1050 表已存在 教程 第1张

问题描述

我有一个包含列的表 CustomizationSet:

customization_set_guid (which is a non-nullable guid and also the primary key)
creator_account_guid
and a few others

和一个带有现有数据的表与列注册:

registration_id (an int and the primary key)
customization_set_guid (also a guid (so a char(36)) which is nullable, and all entries are currently null)
and a few other columns

当我尝试运行时

ALTER TABLE Registration ADD FOREIGN KEY 
 (
  customization_set_guid
 ) REFERENCES CustomizationSet (
  customization_set_guid
 );

在 MySQL Workbench 中,它给出错误 1050Table '.dbnameegistration' 已存在.

如果我尝试使用 UI 通过 Alter Table 对话框的 Foreign Keys 选项卡添加外键,并选择 CustomizationSet 作为引用表,它不允许我在列列表中选择 customization_set_guid.

我真的不知道为什么它不允许我添加这个外键.我刚刚在刚刚添加的表之间成功创建了外键.注册表已经存在了一段时间...

推荐答案

所以一个团队成员想出了这个.一张表设置为 utf8_general 类型,另一张表设置为默认类型.我不认为这是一个问题,因为默认值是 utf8_general,但显然 mysql 只查看类型名称而不是底层类型.

好了关于将外键添加到现有表会导致错误 1050 表已存在的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。