首页 > 解决方案 > 插入/追加多个记录,每个记录递增 1,从最大预先存在的开始

问题描述

所以,我有一个带有数字字段作为键的表。随着记录的添加,该字段每增加一个。然后有时会删除记录,留下类似于 1、2、5、6、8、9、13 等的序列。新记录总是添加为比序列中前一个最大数字高一个。我处于需要通过追加查询插入大约 9000 条新记录的情况,但追加总是对所有新记录应用相同的下一个最高数字。下面是我目前所拥有的,标有“Expr1”的位是我能做到的最好的说明。

INSERT INTO ALTSTRAT ( ALT_STRAT_ID, FIELD1, FIELD2, FIELD3, FIELD4, FIELD5 )
SELECT Max(ALT_STRAT_ID)+1 AS Expr1, "PROM" AS Expr2, 
ITEM.ITM_NUM, "@" AS Expr3, ITEM.MASTER_STRAT, 0 AS Expr4
FROM ITEM
GROUP BY "PROM", ITEM.ITM_NUM, "@", ITEM.MASTER_STRAT, 0;

非常感谢任何帮助,我没有多少头发可以撕掉。谢谢!

标签: ms-accessappend

解决方案


看起来ALT_STRAT_ID实际上一个自动编号。因此,只需在插入时省略它 - 它会自动添加 - 并且不需要 Group By 常量值:

INSERT INTO ALTSTRAT 
    ( FIELD1, FIELD2, FIELD3, FIELD4, FIELD5 )
SELECT 
    "PROM" AS Expr2, ITEM.ITM_NUM, "@" AS Expr3, ITEM.MASTER_STRAT, 0 AS Expr4
FROM 
    ITEM
GROUP BY 
    ITEM.ITM_NUM, ITEM.MASTER_STRAT;

推荐阅读