sqlserver不支持无符号整形?

SoulRed 2016-05-20 10:19:49
只有INT 。。而我的数据都是正数。岂不是浪费了一半的存储量?
...全文
810 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
强长黑粗硬 2019-06-18
  • 打赏
  • 举报
回复
其实也可以不浪费啊。 虽然你的数据都是正数,但是你可以让超过2,147,483,647的数值在数据库里存成负值。 当你从数据库取出来的时候再转换成正值使用。 不过,不用抠到这种地步了吧?就好像,你要选int,难道你的数据真的能够达到2,147,483,647 这么多? 如果达不到,按照你的说法,岂不是也有空间浪费了?
中国风 2016-05-21
  • 打赏
  • 举报
回复
占用都是4个字节,不会少,只是限制非负数,所有不会存在浪费时间的说法
中国风 2016-05-21
  • 打赏
  • 举报
回复
不同数据库不同实现方式 ,不能要求一样,楼主讲的应该是MySQL吧 比如: INT UNSIGNED
中国风 2016-05-21
  • 打赏
  • 举报
回复
加个约束就行了 比如: CREATE TABLE t(ID INT CHECK (ID>=0))
卖水果的net 版主 2016-05-21
  • 打赏
  • 举报
回复
这个不能算是浪费; oracle 、SQL Server 、DB2 这些都没有这种类型;
kingtiy 2016-05-21
  • 打赏
  • 举报
回复
tinyint 是正整数,但范围有限.只有一个字节. 如果你觉得浪费了一半的范围,可能不够使用,你可以使用bigint.这个范围应该够了.
shoppo0505 2016-05-21
  • 打赏
  • 举报
回复
嗯,那你有什么好的解决方法么?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧