mysql - 关于mysql的外键

标签 mysql foreign-keys

我正在将旧的 Sybase 数据库迁移到 MySQL,并且必须创建外键。现在,由于 Sybase 导出其数据,我尝试像在 MySQL 上一样使用其查询:

ALTER TABLE Mosaico.fornit_col
ADD FOREIGN KEY fkey_fco_fornit_maz ( fco_idformaz ) 
REFERENCES Mosaico.fornit_maz ( fma_id );
--
ALTER TABLE Mosaico.fornit_col
ADD FOREIGN KEY fkey_fco_mater_col ( fco_idmatcol ) 
REFERENCES Mosaico.mater_col ( mco_id );
--

而且似乎效果很好。 如果我在 MySQL 管理控制台上执行它们,查询就会工作,但在 Workbench 上,第二个查询会出现此错误:

ALTER TABLE Mosaico.fornit_col ADD FOREIGN KEY fkey_fco_mater_col ( fco_idmatcol )  REFERENCES Mosaico.mater_col ( mco_id ) Error Code: 1050. Table '.\mosaico\fornit_col' already exists

有什么问题吗?

最佳答案

在此处查看错误报告:

MySQL Bug 55296

最后,有问题的人升级了他们的服务器并解决了问题。通过阅读它,我不确定其中的某个地方没有错误。他们确实有一些解决方法,例如输入约束名称/更改它们。尝试他们的一些修复。如果您认为这是相同的,并且您可以重复该错误,我会请求重新打开该错误。

有一次,他们提到类型不匹配,工作台响应错误错误(应该是 errno 150 或 errno 121)。您可以在此处查看这些错误的原因: MySQL Foreign Key Errors and Errno 150

关于mysql - 关于mysql的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029078/

相关文章:

Symfony 4 Doctrine 关系,集合不获取数据

mysql - Zabbix 数据库升级失败。无法添加或更新子行: a foreign key constraint fails

mysql - 从外部表中选择值

mySQL 字母数字字符串排序问题

MySQL外键约束错误代码1215

PHP:搜索时查询为空

mysql - SQL 存储过程 - 变量太短

database - 将外键作为主键可以吗?

mysql - 在单个查询中检索结果集和其他列的计数

java - 我如何制作连接到 mysql 数据库的可执行文件?