2011-03-17 5 views
1

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

SQLクエリ:

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

MySQLは言った:

私はPHP myadminというこのクエリを設定するので、面白いです
#1025 - Error on rename of './ridestr/#sql-1f44_26eeb' to './ridestr/routes' (errno: 150) 

...私は外部キーを取得していますなぜかエラー...私はintからvarcharに何かを変更しようとしています

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

+0

通常、外部キーの問題があることを意味します - あなたの構造のクエリを投稿してください。よろしくお願いします。 – BigFatBaby

+0

クエリの前に外部キーチェックを無効にし、クエリの後で再び有効にしましたか? –

答えて

5

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

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

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 

何をしたかである私は、これはハードな方法である知っているが、私は、これは動作します確信している非常に困難ですあなたもあなたのために