最近在工作中遇到一个问题,面对一个有上百万数据的表如何给他添加主键,有这种问题的往往是在业务初期建表是忘记了设置主键,等到系统在正式库上跑了一段时间之后,表中添加了大量的数据,这个时候想要给表添加主键时就会遇到这个问题,

面对这个问题我们可以借助oracle中的序列,代码如下:

update tablename d

set d.f_id = to_char(sysdate,\'yyyymmdd\') || lpad(sequence_name.Nextval,8,\'0\');

\'8\'和\'0\'代表我新建的序列是8位,如果不够8位用\'0\'填充

 

收藏 打印