oracle表的主键为什么不能用Number类型? 本帖最后由 JiKaiStart 于 2014-07-10 21:38:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用的啊!也有可能是你的同事用number做主键的时候出现过什么意外的问题,最后把主键数据类型改完后解决了,然后他就避免在他那个环境用number做主键了。 number 可以会存储小数,你同事觉得这个不爽。问题是没有,只是使用 int 的人比较多而已,如果是新项目建议使用 int ,原有的项目还是不改动为好,省得给自己找麻烦。 number是没有问题的,用sequence生成序列,其实主键就是唯一标示而已。 是不是你们的项目用到hibernate反向工程,自动生成一张表的增删改查的Java代码,NUMBER无法自动对应到Java里面的类型,需要人工修改类型,为了方便,所以就不建议number类型。 number 是Oracle数据库的数据类型,而integer是通用类型,lz同事是不是从数据库移植或与多种开发工具兼容角度考虑的 没有啊,我们项目用的话就是number类型,没有用integer,但两者区别应该不大 话说number(38,0)数据多了不会满吗? 满?1天=60×60×24=86400,宽松一点算10万秒假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧 满?1天=60×60×24=86400,宽松一点算10万秒假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧12楼说的是啊,一般都是用number吧,5楼说得也对。int是标准的 number 有可能在前台程序对应浮点数类型。正巧来个 id = id + 100/3 的运算,(有些语言)小数都出来了。再拿这个 id 去比较、转字符串就混乱了。 前台一次插入100条主记录和对应的子记录。比起调用100次自增为1的sequence.NEXTVAL;不如调用1次自增为100的sequence.NEXTVAL,然后在前台循环id————这不就有运算了。假如这100条还是分3个类别的小循环,用 100/3 算类别起至,小数就出来了。 oracle 11g备份与还原问题咨询 oracle中表字段为null时页面就有可能报错 令人费解的ISEDIT!!! 关于ora-00922选项缺失或无效错误?请帮忙解决! pl/sql的问题 关于ORACLE73个人版本地数据库别名的问题 maximum number of process(50) exeeded?? ORACLE如何设置不显示用户下的系统表和对象?? oracle中的空值怎么写条件? 在线等,两个字符串,都从左边第一个字符开始比较取相同部分的结果 优化一个SQL oracle 统计查询 统计每列某值的个数
也有可能是你的同事用number做主键的时候出现过什么意外的问题,最后把主键数据类型改完后解决了,然后他就避免在他那个环境用number做主键了。
1天=60×60×24=86400,宽松一点算10万秒
假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据
按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧
1天=60×60×24=86400,宽松一点算10万秒
假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据
按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧12楼说的是啊,一般都是用number吧,5楼说得也对。int是标准的
正巧来个 id = id + 100/3 的运算,(有些语言)小数都出来了。
再拿这个 id 去比较、转字符串就混乱了。
比起调用100次自增为1的sequence.NEXTVAL;不如调用1次自增为100的sequence.NEXTVAL,然后在前台循环id————这不就有运算了。
假如这100条还是分3个类别的小循环,用 100/3 算类别起至,小数就出来了。