我正在将旧的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
有什么问题?
答案 0 :(得分:1)
点击此处查看错误报告:
最后,有问题的人升级了他们的服务器并修复了问题。从阅读它,我不确定那里有没有错误。他们确实有一些解决方法,比如输入约束名称/更改它们。尝试他们的一些修复。如果您认为这是相同的,并且您可以重复该错误,我会请求重新打开该错误。
有一次,他们提到类型不匹配,工作台正在响应错误的错误(它应该是一个错误的150,或者错误的错误121)。您可以在此处查看这些错误的原因: MySQL Foreign Key Errors and Errno 150