天天看点

mysql的decimal长度之坑------Out of range value for column xxx

        踩了个坑, 来看看:

CREATE TABLE x (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    cost DECIMAL(2, 1) NOT NULL
);           

        然后:

mysql> INSERT INTO x(cost)VALUES(1.3);
Query OK, 1 row affected (0.02 sec)

mysql> INSERT INTO x(cost)VALUES(10.3);
ERROR 1264 (22003): Out of range value for column 'cost' at row 1
mysql>            

       注意, DECIMAL(2, 1)的格式, 和C语言中printf控制长度的格式类似。

       2是总长度, 额, 呵呵哒。

       没什么好说的。

       不多说。

继续阅读