在不更改表结构的情况下按顺序在列中填充数字-需要查询
答案 0 :(得分:0)
如果您不想更改或更改数据库表结构,则实际上解决方案有限。
第一个选项可能是使用序列对象
create sequence mySequence increment by 1;
有了序列对象后,只要需要此字段值就可以从该序列中读取
select mySequence.nextval from dummy;
不幸的是,每次读取都会增加序列的当前值。 这意味着,如果您读取但未将值插入到表中,则下次插入新行时,表列中将出现间隙。 或者,如果您从两个不同的执行中插入两行,则可能首先读取序列,但比另一个线程晚插入值;那么序列将类似于11,12, 14,13 ,15
第二个选项是创建数据库表 trigger AFTER INSERT语句。 然后,您可以从表列(或可以存储在单独的表中)或序列中获取最大值,并使用此序列数据更新列字段