2017-12-06 11 views
0

Ich versuche, eine Zeile in der MySQL-Tabelle zu aktualisieren, die Daten der Spalte ist -122.333351900 und es existiert bereits, so dass es kein Problem auf seiner Länge nicht mit dem Datentyp übereinstimmt und seine Länge.MySQL Präzision DECIMAL (13,9) für Länge

Aber wenn ich einen UPDATE SQL-Befehl ausführen, schlägt es mit

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

Ich verstehe nicht, warum seine falsch? Es hat diesen Wert bereits eingefügt und jetzt, wenn ich einen UPDATE-Befehl ausführe, scheitert es mit einem Fehler!

+0

Haben Sie einen Trigger auf diesem Tisch? –

+0

@juergend du bist mein Engel! Bitte stellen Sie das als Antwort und ich kann akzeptieren .... Der Auslöser hatte einen falschen Datentyp und damit das Problem. – Sana

+2

Für, was es wert ist, überprüfen Sie https://stackoverflow.com/questions/7167604/how-accurately-should-i-store-latitude-and-longitude Using Präzision von DECIMAL (13,9) misst Längengrad hinunter zu den Zehntel Millimeter! :-) –

Antwort

2

Überprüfen Sie Ihre Tabelle, ob es einen Trigger hat. Ein Trigger wird direkt vor oder nach dem Aktualisieren/Einfügen in eine Tabelle ausgeführt.

Wenn es einen Fehler enthält, sieht es so aus, als würde das Update fehlschlagen, wenn ein verwandter Trigger fehlschlägt.

+0

Ich hatte einen Trigger und die Spalte in der Archiv-Tabelle hatte unterschiedliche DECIMAL-Definition – Sana