0

古い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では2番目のクエリで次のエラーが発生します。

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

どうしたの?

4

1 に答える 1

1

ここでバグレポートをチェックしてください:

MySQLバグ55296

結局、問題のある人はサーバーをアップグレードし、問題を修正しました。それを読んで、どこかにバグがないかどうかはわかりません。制約名を入力したり変更したりするなど、いくつかの回避策がありました。それらの修正のいくつかを試してください。これが同じだと思われ、エラーを繰り返すことができる場合は、バグを再度開いてください。

ある時点で、タイプが一致せず、ワークベンチが間違ったエラーで応答していたと彼らは述べています(errno150またはerrno121である必要があります)。これらのエラーの原因は、 MySQL外部キーエラーとErrno150で確認できます。

于 2012-06-15T18:13:00.623 に答える