Mysql
 sql >> Base de données >  >> RDS >> Mysql

Avertissement # 1264:erreur hors plage dans mysql

Je pense que vous rencontrez cette erreur car le year_exp le champ est DECIMAL(2,2) , et vous voulez DECIMAL(4,2) . DECIMAL(2,2) désigne un nombre de précision 2, avec jusqu'à 2 décimales. Mais ce nombre a 4 chiffres de précision.

Ce lien vers MSDN parle de la précision décimale.

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

Voici un test rapide avec des résultats similaires (fait dans SQL Server 2008, mais je pense que vous êtes sur MySQL...)

1) Création d'un tableau avec une colonne de test :

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

2) Ran insert statement... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... et a reçu cette erreur ...

(COMMENTAIRE :une de mes erreurs préférées... "impossible de convertir un nombre en nombre..." ha ha)

3) Colonne modifiée selon les spécifications appropriées

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

4) Relancez la même instruction d'insertion. Ça marche.

Veuillez me faire savoir si cela vous aide.