mysql tinyint欄位修改時無效

2021-08-14 19:01:20 字數 1126 閱讀 7959

建立表

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;

idnum

1100

288

3127

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 tinyint和int資料型別的區別

tinyint smallint mediumint int bigint都是mysql的資料型別,字面意思上從左到右從小到大。具體範圍上比較 tinyint 128,127 smallint 32 768,32 767 mediumint 8 388 608,8 388 607 int 2 147...

NHibernate讀取單個字段值,錯誤修改方法

原語句 iquery query dbhelper.session.createquery select id from member where username username query.setstring username username object reslut query.uniq...

oracle處理已有資料的字段 主鍵 型別修改方法

來自本人oracle最新sql回憶性演練1一篇博文 只所以重新發布一次,就是抽取經驗,讓大家可以找到解決方法 處理已有資料的字段型別修改 前4步操作會使表中的約束丟失 1重新命名字段 alter table example rename column id to sid 2新增id欄位 alter ...