2

このクエリを実行すると #1025 エラーが発生します。

SQL クエリ:

ALTER TABLE  `routes` CHANGE  `end_loc`  `end_loc` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

MySQL は次のように述べています。

#1025 - Error on rename of './ridestr/#sql-1f44_26eeb' to './ridestr/routes' (errno: 150) 

PHP MyAdmin でこのクエリを設定したので、これはおかしいです...なぜ外部キーエラーが発生するのかわかりません...何かを int から varchar に変更しようとしているだけです

誰でも助けることができますか?

4

2 に答える 2

6

列が外部キーで使用されている場合、routes.end_locそのデータ型は変更できません。外部キーを削除し、親列と子列の両方のデータ型を変更してから、外部キーを再度追加する必要があります。

このエラーの詳細については、実行SHOW ENGINE INNODB STATUS\Gしてセクションを参照してくださいLATEST FOREIGN KEY ERROR

于 2011-03-17T15:33:01.403 に答える
0

しかし、ここにあるすべてのテーブルの文字セット全体をutf8に変更したい場合は非常に困難です。

     1 export the database (all tables) and open by notepad

     2 replace all "latin1" by utf8 and save

     3 then try to restore using mysqlAdministrator but it says wrong

     4 so try restoring again but you have to select ignore errors radio button
     5 it tries to restore some tables 

     6 then you have to restore again until no error message 

私はこれが難しい方法であることを知っていますが、これはあなたにも役立つと確信しています

于 2015-04-30T17:18:36.800 に答える