sql >> Databáze >  >> RDS >> Mysql

Varování # 1264:Chyba mimo rozsah v mysql

Domnívám se, že k této chybě dochází kvůli year_exp pole je DECIMAL(2,2) a chcete DECIMAL(4,2) . DECIMAL(2,2) znamená číslo s přesností 2 až na 2 desetinná místa. Ale toto číslo má 4 číslice přesnosti.

Tento odkaz na MSDN hovoří o desetinné přesnosti.

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

Zde je rychlý test s podobnými výsledky (provedený v SQL Server 2008, ale myslím, že používáte MySQL...)

1) Vytvořil tabulku s testovacím sloupcem:

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

2) Spustil vložení příkazu... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... a obdrželi tuto chybu ...

(KOMENTÁŘ:jedna z mých oblíbených chyb ... "nelze převést číslo na číslo..." ha ha)

3) Změněný sloupec podle správných specifikací

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

4) Znovu spusťte stejný příkaz vložení. Funguje to.

Dejte mi prosím vědět, jestli to pomůže.



  1. mysql_upgrade se nezdařilo - tabulky innodb neexistují?

  2. paměťově efektivní vestavěný iterátor/generátor SqlAlchemy?

  3. Může operátor IN používat LIKE-wildcards (%) v Oracle?

  4. Jak nastavit sql_mode v my.cnf v MySQL 8?