在SQL中,如何在不更改表结构的情况下按顺序在列中填充数字?

时间:2018-07-22 17:15:22

标签: sql hana-sql-script

在不更改表结构的情况下按顺序在列中填充数字-需要查询

1 个答案:

答案 0 :(得分:0)

如果您不想更改或更改数据库表结构,则实际上解决方案有限。

第一个选项可能是使用序列对象

create sequence mySequence increment by 1;

有了序列对象后,只要需要此字段值就可以从该序列中读取

select mySequence.nextval from dummy;

不幸的是,每次读取都会增加序列的当前值。 这意味着,如果您读取但未将值插入到表中,则下次插入新行时,表列中将出现间隙。 或者,如果您从两个不同的执行中插入两行,则可能首先读取序列,但比另一个线程晚插入值;那么序列将类似于11,12, 14,13 ,15

第二个选项是创建数据库表 trigger AFTER INSERT语句。 然后,您可以从表列(或可以存储在单独的表中)或序列中获取最大值,并使用此序列数据更新列字段