INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(news_seq.nextval,1,'aa','aaa')
插入数据 报错此处不允许序列,这是什么原因。对序列的用法不熟悉,望各位提示一下,这是怎么回事

解决方案 »

  1.   

    偶只知道是要把sequence先得到,再放到insert的参数里面去,我理解是insert不能引用像.nextval这样动态的值,函数啥的还是可以的。
    select news_seq.nextval into v_nid from dual;INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(_nid ,1,'aa','aaa');
      

  2.   

    把你那个news_seq.nextval  换成具体的数字,看看报错不    这问题 试一试就试出来
      

  3.   

    龟腚就是不要问为什么!
    INSERT INTO news (nid, ntid,ntitle,nauthor) select news_seq.nextval ,1,'aa','aaa' from dual
      

  4.   

    换成具体的数字报同样的错
    select news_seq.nextval from news 存在结果,这是怎么回事?
      

  5.   

    我这样把表中本来存在的值再插进去吗?
    我要实现新闻添加的功能
    代码如下 public boolean addNews(News new1) throws Exception{
    DbUtil dbutil=new DbUtil();
     Connection con=dbutil.getcon();  
     PreparedStatement pst = null;  
         ResultSet rs = null;  
         int ntid=new1.getNtid();
         String ntitle=new1.getNtitle();
         String nauthor=new1.getNauthor();
         pst=con.prepareStatement( "INSERT INTO news (nid, ntid,ntitle,nauthor) VALUES(news_seq.nextval,?,?,?)");
         pst.setInt(1, ntid);
         pst.setString(2, ntitle);
         pst.setString(3, nauthor);
         rs=pst.executeQuery(); 
         if(rs!=null){
         return true;
         }
         else{
          return false;  
          
         }