mysql tinyint字段修改时无效

创建表

CREATE TABLE `t_cust` (
  `id` int(11) NOT NULL,
  `num` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


查询表中数据

select * from t_cust;

id num

1 100

2 88
3 127

update语句

update t_cust set num = 300 where id =2;

select * from t_cust where id =2;

id num

2 127

值发生了变化,但这次num神奇的变为了127。


经过lz不停的查找,发现了是tinyint类型引发的原因。

tinyint  从 0 到 255 的整型数据。存储大小为 1 字节。


注:

smallint

从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。

int

从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。




你可能感兴趣的:(mysql)