繁体   English   中英

插入到Oracle DB表中的特定位置?

[英]Insert to particular location in Oracle DB table?

假设我有一个包含以下数据的表:

Name | Things
-------------
Foo  |   5
Bar  |   3
Baz  |   8

如果我要插入一行,那么表的最终状态是:

Name | Things
-------------
Foo  |   5
Qux  |   6
Bar  |   3
Baz  |   8

这可能吗?

我知道我们通常不依赖表中行的顺序,但是我继承了一些代码来精确地做到这一点。 如果可以插入某个位置,则可以避免重大重构。

如您所说,您不能依赖表中的行顺序(没有ORDER BY)。

无论如何,我都可能会重构代码-将来有机会在没有任何警告的情况下将其破坏-当然可以在可控的情况下处理它了吗?

我将在表中添加FLOAT列,如果要在该列的值分别为7.00000和8.000000的行之间插入一行,则新行的值为7.50000。 如果然后要在7.00000到7.50000之间插入一行,则新行将得到7.25000,依此类推。 然后,当您按该列排序时,将按所需顺序获得列。 相当容易翻新。 但是不像人们喜欢的那样健壮。 您应该从表中撤消所有更新/插入权限,并通过存储过程处理I / O。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM