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

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

update tablename d

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

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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄