就是原来有一张表有几千行数据,但是没有设置主键ID,我现在要在这张表上加一个字段ID设成主键,需要先加值,然后再设置为主键,且值不能重复,那位大哥帮忙解决下

解决方案 »

  1.   

    写个序列
    再写个存储过程(
    内容大致:查出数据的总条数
    然后写个循环
    将主键update成序列里生成的值)
      

  2.   

    不对 上面错了写个序列
    再写个存储过程(
    内容大致:
    for cur in (select * from 表名)
     loop
       update 表名 set 主键=序列.nextval where (将这些数据可以唯一区别出来的字段 都加进条件里)
     end loop;

    commit;
      

  3.   

    弄出来了,update tablename set id=rownum,哈哈哈
      

  4.   

    还有个方法
    declare
    cursor cur is
    select rowid  from demo;
    v_current number;
    begin 
      for data1 in cur loop
        update demo  set c_id =hibernate_sequence.nextval where rowid = data1.;
        end loop;
     end;   
      

  5.   

    update biao set id=seq.nex...
      

  6.   

    写个生成主键的函数,增加字段ID,UPDATE 表 set id=生成主键函数,把id字段设成主键