客服雪梨 發表於 2025-3-22 00:00:00

mysql字段使用int类型,不能保存-1值,报错?

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><span class="content-right_8Zs40">整数类型范围</span></li><li><span class="content-right_8Zs40">保存-1值报错解决办法</span></li></ul></div><p><span class="content-right_8Zs40">MySQL中的INT是 <strong>整数数据类型</strong>,它是一个整数。
<strong>它允许数字不带小数部分(没有小数部分)</strong>。例如,1、5,-10是整数类型,而1.5、5/7不能是整数。请注意,整数值可以是 <strong>正,负或零</strong>。</span></p><p><span class="content-right_8Zs40"><br/></span></p><p class="maodian"></p><h2><span class="content-right_8Zs40">整数类型范围</span></h2><p><span class="content-right_8Zs40"></span></p><div class="desc">下表说明了每种整数类型的特征,包括每种整数类型所需的存储空间和范围(最小值和最大值)。</div><table><tbody><tr class="firstRow"><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">类型</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">字节</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">最小值</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">最大值</td></tr><tr><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">TINIINT</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">1</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">-128</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">127</td></tr><tr><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">SMALLINT</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">2</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">-32768</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">32767</td></tr><tr><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">MEDIUMINT</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">3</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">-8388608</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">8388607</td></tr><tr><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">INT</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">4</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">-2147483648</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">2147483647</td></tr><tr><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">BIGINT</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">8</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">-9223372036854775808</td><td style="border-width: 1px; border-style: solid; border-color: gainsboro;">9223372036854775807</td></tr></tbody></table><div class="desc">我们将要使用的数据类型的选择取决于我们将要存储的数据类型。例如,TINYINT数据类型足以满足一个班级最多可容纳35人的学生人数。但是,如果需要在一个国家/地区存储每个人的联系电话,则必须选择INT或BIGINT数据类型。
<strong>只要有可能,最好选择最小的数据类型,因为它会最小化数据库的大小</strong>。&nbsp;</div><h1 class="title-article" id="articleContentId">unsigned的用法</h1><p><br/></p><p>unsigned&nbsp;是mysql自定义的类型,表示<strong><span style="text-decoration:underline;">无符号数值即非负数</span></strong>。signed为整型默认属性。</p><p>在mysql数据库中,unsigned表面含义是 &#39;无符号’的意思,unsigned既为非负数,用此类型可以增加数据长度.</p><p>例如,如果 int最大是2147683647,那 tint unsigned 最大 就可以到 2147683647 * 2;以tinyint为例,它的取值范围-128-127,加不加signed都默认此范围。加上unsigned表示范围0-255,其实相当于把负数那部分加到正数上。例如身高、体重或者年龄等字段一般不会为负数,此时就可以设置一个
UNSIGNED ,不允许负数插入。</p><p>与unsigned类似的还有binary,unsigned 属性只针对整型,而binary属性只用于char 和varchar。</p><p><span class="content-right_8Zs40"><br/></span></p><p class="maodian"></p><h2><span class="content-right_8Zs40">保存-1值报错解决办法</span></h2><p><span class="content-right_8Zs40">看<em>一</em>下你定义数据类型的时候,是不是加了unsigned,如果是<em>int</em>(10) unsigned就不能使用负数了只能使用正数。<br/><span class="c-line-clamp2">phpMyAdmin的unsigned在哪里?表机构中的属性可以看到unsigned。<em><br/></em></span></span>navicat的unsigned在哪里?自动增长列下面那个选项就是unsigned。</p><p><span class="content-right_8Zs40"></span><br/></p>
頁: [1]
查看完整版本: mysql字段使用int类型,不能保存-1值,报错?