Oracle SQL:如何用已创建序列填充表列的现有空值?
填充表中现有空列的序列值
操作场景
已完成以下操作:
- 为
table_1表新增column_3列 - 创建序列
sequence_1:CREATE SEQUENCE "sequence_1" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOPARTITION - 为
column_3设置默认值为序列的下一个值:ALTER TABLE table_1 MODIFY column_3 DEFAULT sequence_1.NEXTVAL
空值填充语句
执行以下SQL即可将column_3中的所有空值替换为序列的连续唯一值:
UPDATE table_1 SET column_3 = sequence_1.NEXTVAL WHERE column_3 IS NULL;
说明
执行该语句后,每一行空值都会被分配一个新的序列值,序列的当前计数会同步递增,后续新增行将自动使用默认值填充序列值。
内容的提问来源于stack exchange,提问作者Stamatis Tiniakos
相关产品推荐
相关产品推荐

