2011-03-14 4 views
0

での照合順序の不正なミックス私はこのエラーを取得する:私は直接、UPDATEクエリを実行すると、私は全く問題を持っていないがのmysql:店の手続きの問題

DELIMITER // 

CREATE PROCEDURE setVehicleStats (vehID text, vehStatus text, vehLat double, vehLon double) 
BEGIN 

    UPDATE vehicles SET st=vehStatus, lat=vehLat, lon=vehLon WHERE id=vehID; 

END// 

Illegal mix of collations (greek_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='私は私のこのストアプロシージャを呼び出すとき:UPDATE vehicles SET st='Καλημέρα' WHERE id='A001';

私は明示的に各列の文字セットを宣言しようとしました。問題は、プロシージャを呼び出すときにのみ発生するようです!どんな助け?ありがとう...

+1

なぜ地球上であなたは、IDとステータスのためのテキストデータ型を使用している - それは、ビットEXTREMEだあなたは思いません? –

答えて

0

私は問題がvehStatusパラメータの照合にあると思います。サーバーまたは接続のデフォルト文字セットはlatin1に設定され、greek_general_ci照合ではgreek文字セット(ISO 8859-7)が使用されているようです。このようなあなたのパラメータを宣言してみ :

vehStatus text character set greek 
+0

これは問題を解決しました!ありがとうございました。テーブルのデフォルトの文字セットはgreekに設定されています。どのデフォルト文字セットを意味するのですか? – Vassilis

+0

接続のサーバーのデフォルトがあります。この場合、問題を引き起こしているのはサーバーのデフォルトの文字セットだと思います。 – Xint0

+0

もう一度ありがとう! – Vassilis