tinyint字段类型统一映射的问题

这个问题好久之前就发现了,mysql数据库,如果某个表字段设置为tinyint类型,在使用model生成器之后,在不同的mysql版本中,它映射的类型不一样,有时候是布尔型,有时候是整型,不统一。

除了更换类型,有没有其他办法让他统一下,这样就不用因为数据库版本不同而换来换去了,在项目中很痛苦。说实话,现在都轻易不敢用这个类型了。

------------------------------------

刚又研究了下,好像摸到规律了:

1.字段设置为tinyint(1)

2.一定不要、不要、不要设置为无符号

这样生成的就是固定的布尔型。

评论区

杜福忠

2025-02-26 22:42

我们项目中规定确实不用,统一 int 2 位。。。tinyint 1 位的时候是布尔

happyboy

2025-02-26 22:59

@杜福忠 int 2、int 10在mysql8中本质上没啥区别,哈哈∩▂∩

糊搞

2025-02-27 09:13

布尔用bit呀,,,b'0'、b'1'分别表示false、true

糊搞

2025-02-27 09:13

tinyint用作type值挺好,取值只有0~255

sioui

2025-03-12 23:31

mysql8 tinyint 1会转成boolean类型, tinyint 3 就会转为int类型

happyboy

2025-03-14 09:04

@sioui mysql8中不仅要tinyint 1,还得避免设置无符号。一旦设置了无符号,也是int类型

热门反馈

扫码入社