我在程序写一个INSERT INTO 语句,没有把ID(NUMBER)字段放进去 报了“不能写入NULL”的错误 难道系统不会自动给ID字段添一条记录

解决方案 »

  1.   

    id字段是主键吧,或者加了not null限制
    当然不会自动给id填值,你可以建个序列,写个触发器来填充
      

  2.   

    number 不是自增的,oracle 的自增必须通过sequence来完成。
    ORACLE SEQUENCE 介绍 
    http://blog.csdn.net/tianlesoftware/archive/2009/10/30/4745039.aspx------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716 
      

  3.   

    如果不是主键,但设定了not null,可是设定默认值。
      

  4.   

    oracle中需要用序列和触发器来实现自增长
      

  5.   

    oracle暂无自增字段。number只是个数值字段,仅此而已
      

  6.   

    没错,oracle没有自增的字段,你要写一个自增的_seq,加上.nextval就能自增
      

  7.   

    4楼说的对,如果真的想实现像Sql Server那样这自增字段只能这样,也可以用一个序列.nextval来手动实现
      

  8.   

    id字段是主键吧,或者加了not null限制 
    当然不会自动给id填值,你可以建个序列,写个触发器来填充 是这么回事
      

  9.   

    Oracle中的自增主键不像sql server一样,在SQL SERVER中表的字段存在identity属性,可以自动增加id.
    而在Oracle中,主要是创建一个序列sequence来实现的,通过seq.nextval来获取,一般情况下,对于往表中插入数据,我们是采用创建一个insert trigger来实现的。
      

  10.   

    oracle不像mssql,不能设置自动增加,需要用序列和触发器来实现
      

  11.   

    oracle 的自增必须通过sequence来完成。 
      

  12.   

    你如果想用自己增长就是用sequence     例如:
    create sequence 序列名insert into 表 values(序列名.nextval。)