Kevin Li

突破.net极限

导航

MySql 主键(自动增加)的数据类型所带来的错误

Posted on 2004-12-11 16:30  Kevin Li  阅读(4003)  评论(1编辑  收藏  举报
前段时间在做一个网站时,使用了MySql数据库,并使用 EMS MySql Manager 来创建和管理数据库,其中有一个表有一个自增的主键id,因为EMS Mysql Manager创建表时默认的自增类数据类型为TinyInt,刚开始也没有注意到这个问题。直到今天发现怎么也不能往数据库中插入数据,错误原因是id列中值127的记录已经存在!检查了一下数据库,果然存在,但是id列明明是自增的,我又没有在insert 语句中指定id列的值,为什么会出现这个问题呢?

检查了一下数据库,发现id列的数据类型为tinyint,然后又想怎么会是127 (128-1)这么特别的数字呢?后来一想,是不是tinyint只能表示-127~127之间的数呢?结果我就把数据类型改为integer,一试果然没有问题!

看来,选择正确的数据库数据类型还是很重要的