麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
mysql5+中的int类型的数据问题
悬赏分:20 - 2007年08月22日

测试用的表结构和数据
CREATE TABLE `t` (
`id` int(10) unsigned NOT NULL auto_increment,
`tid` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- 导出表中的数据 `t`
--

INSERT INTO `t` (`id`, `tid`) VALUES (1, 1);
=========================
执行下面的语句:
UPDATE `t` SET tid = tid-2 WHERE id=1;
会显示:#1264 - Out of range value adjusted for column 'tid' at row 1

于是在网上搜索到这个:
http://hi.baidu.com/ekylin/blog/ ... af44094b36d687.html

QUOTE:
MySQL错误"Out of range value adjusted for column ..."

MySQL升级到5.0.17后,在执行sql语句
INSERT INTO `news` (`ID`, `Title`, `Content`) VALUES ('', '标题', '正文');
时出现错误:
#1264 - Out of range value adjusted for column 'ID' at row 1

原因:
新版本的MySQL对字段的严格检查。

解决方法:
修改my.ini,将
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"。
重新启动MySQL。

2006-04-02备注:
以后写sql语句时,类型和值最好严格一些。

我按照里面说的,改了一下my.ini,重启mysql
同样执行上面的sql,虽然这次不出错了,但是就是我要说的问题出现了,tid字段的值变成了tinyint(3) unsigned这个类型的最大数255了

记得以前用mysql4.0的时候,它会减到0

怎么样才能让它不减到最大数,而是0呢?还要修改mysql的哪些配置啊?
别告诉我要先select...

提问者:飞豹游侠   08-22 14:02
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
47 + 76 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM