mysql的int unsigned_Mysql 4和5的int unsigned区别

所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。

MySQL4:

mysql> create table wubx(a TINYINT unsigned not null default '0');

Query OK, 0 rows affected (0.04 sec)

mysql> select * from wubx;

Empty set (0.00 sec)

mysql> insert wubx values(0);

Query OK, 1 row affected (0.00 sec)

mysql> select * from wubx;

+------+

| a |

+------+

| 0 |

+------+

1 row in set (0.00 sec)

mysql> update wubx set a=a-1;

Query OK, 0 rows affected, 1 warning (0.00 sec)

Rows matched: 1 Changed: 0 Warnings: 1

mysql> select * from wubx;

+------+

| a |

+------+

| 0 |

+------+

1 row in set (0.00 sec)

mysql5:

(root@localhost) [test]> create table wubx(a int(11) unsigned not null default '0');

Query OK, 0 rows affected (18.44 sec)

(root@localhost) [test]> select * from wubx;

Empty set (0.00 sec)

(root@localhost) [test]> insert into wubx values(0);

Query OK, 1 row affected (0.00 sec)

(root@localhost) [test]> update wubx set a=a-1;

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 1

(root@localhost) [test]> select * from wubx;

+------------+

| a |

+------------+

| 4294967295 |

+------------+

1 row in set (0.00 sec)

mysql> show warnings;

+---------+------+-----------------------------------------------------+

| Level | Code | Message |

+---------+------+-----------------------------------------------------+

| Warning | 1264 | Out of range value adjusted for column 'a' at row 1 |

+---------+------+-----------------------------------------------------+

查了一下:

在对于数值处理时:

MySQL4 会在不合规定的值插入表前自动修改为 0

Mysql5 为了速度,只存放数二进制数据,而且在加减运算中,也是二进制的运算.

所以在使用unsigned 是小心0-1 的操作.尽量在这类操作前先做一个判断.

作/译者:吴炳锡 来源:http://coolriver.cublog.cn,wubingxi#gmail.com0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值