Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ostrzeżenie#1264:błąd poza zakresem w mysql

Wydaje mi się, że masz ten błąd, ponieważ year_exp pole to DECIMAL(2,2) i chcesz DECIMAL(4,2) . DECIMAL(2,2) oznacza liczbę o dokładności 2, z maksymalnie 2 miejscami po przecinku. Ale ta liczba ma 4 cyfry precyzji.

Ten link do MSDN mówi o dokładności dziesiętnej.

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

Oto szybki test z podobnymi wynikami (wykonany w SQL Server 2008, ale myślę, że korzystasz z MySQL...)

1) Utworzono tabelę z kolumną testową:

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

2) Uruchom wstaw oświadczenie... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... i otrzymałem ten błąd ...

(KOMENTARZ:jeden z moich ulubionych błędów ... „nie można przekonwertować liczby na liczbę ...” ha ha)

3) Zmieniono kolumnę zgodnie z odpowiednią specyfikacją

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

4) Ponownie uruchom tę samą instrukcję wstawiania. To działa.

Daj mi znać, jeśli to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP nie może połączyć się z mysql przez Pythona

  2. PHP PDO SQL zwraca tylko jeden wiersz danych zamiast wszystkich wierszy

  3. SELECT TOP błąd

  4. pdo lastInsertId zwraca zero (0)

  5. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL - Część 6