2017-12-06 3 views
0

MySQLテーブルの行を更新しようとしていますが、その列のデータは-122.333351900であり、データ型と一致しない長さに問題はありませんおよびその長さ。経度のMySQL精度DECIMAL(13,9)

しかし、私はそれが

ERROR 1264 (22003): Out of range value for column 'longitude' at row 1 

で失敗UPDATE SQLコマンドを実行したときに、なぜその間違った私は理解していませんか?すでにこの値が挿入されていて、UPDATEコマンドを実行するとエラーが発生して失敗します。

+0

そのテーブルにトリガーがありますか? –

+0

@juergendあなたは私の天使です!それを答えとして入れて受け入れることができます....トリガに間違ったデータ型があったため、問題が発生しました。 – Sana

+2

価値があるのは、https://stackoverflow.com/questions/7167604/how-accurately-should-i-store-latitude-and-longitudeを参照してください。DECIMAL(13,9)の精度を使用すると、ミリメートルの10分の1! :-) –

答えて

2

テーブルにトリガがあるかどうか確認してください。トリガはテーブルの更新/挿入の直前または直後に実行されます。

エラーが含まれていると、実際に関連するトリガーが失敗したときに更新がうまくいかないようです。

+0

私はトリガを持っていましたが、アーカイブテーブルの列に異なるDECIMAL定義がありました – Sana