ms-access - 插入/追加多个记录,每个记录递增 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;
非常感谢任何帮助,我没有多少头发可以撕掉。谢谢!
解决方案
看起来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;
推荐阅读
- javascript - 正则表达式匹配目录后跟点
- ios - 为什么我的动画不流畅?
- xml - 我想在已重新排序的文件中记录一段 xml
- python - 我的 Flask-Admin ModelView 的 __init__ 没有应用程序上下文——它通常什么时候得到一个?
- c++ - 通用单链表,无可行重载 =
- angularjs - 验证 Angular 1.x 输入复选框
- python - 比较 pandas DataFrame 和字典之间的数据
- python - Pandas:通过附加列按组获取最大值
- python - HTML 类在使用检查元素时可见,但在 Python 中用 BS4 找不到
- coffeescript - 在 Coffeescript 中访问静态属性