sql – MERGE INTO插入顺序

我的声明看起来像这样:

MERGE INTO someTable st
USING
(
    SELECT id,field1,field2,etc FROM otherTable
) ot on st.field1=ot.field1
WHEN NOT MATCHED THEN
    INSERT (field1,field2,etc)
    VALUES (ot.field1,ot.field2,ot.etc)

otherTable具有自动增量id字段.

我希望插入someTable与otherTable的id字段的顺序相同,这样在插入非匹配字段时会保留id的顺序.

快速查看docs似乎表明没有任何功能可以支持这一点.

这是可能的,还是有另一种方法可以完成符合我要求的插入?

编辑:一种方法是向someTable添加一个捕获排序的附加字段.如果可能的话,我宁愿不这样做.

…经过反思,上面的方法似乎是要走的路.

最佳答案
你为什么要关心id匹配的顺序?您对查询数据的方式有何不同?相关表应通过主键和外键连接,而不是插入订单记录.在数据库中,表并不是以特定方式进行的.订单应来自order by子句.

有关您为什么要这样做的更多解释可能有助于我们引导您找到合适的解决方案.

转载注明原文:sql – MERGE INTO插入顺序 - 代码日志