Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warnung #1264:Bereichsüberschreitungsfehler in mysql

Ich glaube, Sie haben diesen Fehler, weil year_exp Feld ist DECIMAL(2,2) , und Sie wollen DECIMAL(4,2) . DECIMAL(2,2) bedeutet eine Zahl mit der Genauigkeit 2, mit bis zu 2 Dezimalstellen. Aber diese Zahl hat eine Genauigkeit von 4 Stellen.

Dieser Link zu MSDN spricht über die Dezimalgenauigkeit.

http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx

Hier ist ein Schnelltest mit ähnlichen Ergebnissen (in SQL Server 2008 durchgeführt, aber ich glaube, Sie verwenden MySQL...)

1) Erstellt eine Tabelle mit einer Testspalte:

CREATE TABLE testtable (testcolumn DECIMAL(2,2))

2) Insert-Anweisung ausgeführt... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... und diesen Fehler erhalten ...

(KOMMENTAR:einer meiner Lieblingsfehler ... "Zahl kann nicht in Zahl umgewandelt werden ..." ha ha)

3) Geänderte Säule zu den richtigen Spezifikationen

ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)

4) Dieselbe Einfügeanweisung erneut ausführen. Es klappt.

Bitte lassen Sie mich wissen, ob dies hilft.