sql >> Database teknologi >  >> RDS >> Mysql

Advarsel#1264:fejl uden for rækkevidde i mysql

Jeg tror, ​​du har denne fejl, fordi year_exp feltet er DECIMAL(2,2) , og du vil have DECIMAL(4,2) . DECIMAL(2,2) betyder et antal præcision 2, med op til 2 decimaler. Men dette tal har 4 cifre med præcision.

Dette link til MSDN taler om decimalpræcisionen.

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

Her er en hurtig test med lignende resultater (udført i SQL Server 2008, men jeg tror, ​​du er på MySQL...)

1) Oprettet en tabel med en testkolonne:

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

2) Kørte indsæt sætning... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... og modtog denne fejl ...

(KOMMENTAR:en af ​​mine yndlingsfejl ... "kan ikke konvertere tal til tal ..." ha ha)

3) Ændret kolonne til korrekte specifikationer

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

4) Kør samme indsættelseserklæring igen. Det virker.

Fortæl mig venligst, hvis dette hjælper.



  1. Sådan bruger du INNER JOIN i SQL

  2. Data Warehousing ETL Data Profiling med Oracle Warehouse Builder

  3. SQLite DATEADD() Tilsvarende

  4. Avanceret partitionsmatchning for partitionsmæssig joinforbindelse