mySQL 5.5.17/Workbench 5.2同期失敗(errno:150)

私はいくつかのモデルの更新をmySQLの既存のデータベースと同期させようとしています。以前はうまくいきましたが、今私はエラーが発生している:

#1005 - Can't create table 'edu_dev.#sql-132f_eef09' (errno: 150)

私は本当に何が間違っているのかは分かりません。実行しようとしている更新は、以下のように生成されました:

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL';

ALTER TABLE `edu_dev`.`user` 
  ADD CONSTRAINT `fk_user_language1`
  FOREIGN KEY (`language` )
  REFERENCES `edu_dev`.`language` (`iso` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

..
..
..

SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;

edu_dev.language exists already with the column used for foreign key check. I have 50 other tables that should be updated too, so i would prefer not to do it manually.

0

1 答え

問題が解決しました。

Make sure all the tables with foreign key constraints have the same collation. For some reason some have switched to latin1_swedish_ci while they had to be utf8_general_ci

There is also a good tool to change the collation of all tables of a database: Phoca Changing Collation

0
追加された