本帖最后由 JiKaiStart 于 2014-07-10 21:38:31 编辑

解决方案 »

  1.   

    可以用的啊!
    也有可能是你的同事用number做主键的时候出现过什么意外的问题,最后把主键数据类型改完后解决了,然后他就避免在他那个环境用number做主键了。
      

  2.   

    number 可以会存储小数,你同事觉得这个不爽。问题是没有,只是使用 int 的人比较多而已,如果是新项目建议使用 int ,原有的项目还是不改动为好,省得给自己找麻烦。
      

  3.   

    number是没有问题的,用sequence生成序列,其实主键就是唯一标示而已。
      

  4.   

    是不是你们的项目用到hibernate反向工程,自动生成一张表的增删改查的Java代码,NUMBER无法自动对应到Java里面的类型,需要人工修改类型,为了方便,所以就不建议number类型。
      

  5.   

    number 是Oracle数据库的数据类型,而integer是通用类型,lz同事是不是从数据库移植或与多种开发工具兼容角度考虑的
      

  6.   

    没有啊,我们项目用的话就是number类型,没有用integer,但两者区别应该不大
      

  7.   

    话说number(38,0)数据多了不会满吗?
      

  8.   

    满?
    1天=60×60×24=86400,宽松一点算10万秒
    假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据
    按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧
      

  9.   

    满?
    1天=60×60×24=86400,宽松一点算10万秒
    假设每一秒产生1000万数据,这样一天的数据大概是10的12次方条数据
    按这个数据量number(38,0)的类型要10的26次方 天才能用完,也许到地球灭亡的时候能用完吧12楼说的是啊,一般都是用number吧,5楼说得也对。int是标准的
      

  10.   

    number 有可能在前台程序对应浮点数类型。
    正巧来个 id = id + 100/3 的运算,(有些语言)小数都出来了。
    再拿这个 id 去比较、转字符串就混乱了。
      

  11.   

    前台一次插入100条主记录和对应的子记录。
    比起调用100次自增为1的sequence.NEXTVAL;不如调用1次自增为100的sequence.NEXTVAL,然后在前台循环id————这不就有运算了。
    假如这100条还是分3个类别的小循环,用 100/3 算类别起至,小数就出来了。