[英]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.