Вставить / добавить несколько записей, увеличивая каждую на 1, начиная с максимального ранее существующего - PullRequest
0 голосов
/ 28 августа 2018

Итак, у меня есть таблица с числовым полем в качестве ключа. По мере добавления записей это поле увеличивается на единицу для каждой. Затем записи иногда удаляются, оставляя последовательность, аналогичную 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;

Любая помощь очень ценится, у меня не так много волос, чтобы их вырвать. Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

Кажется, что ALT_STRAT_ID на самом деле является AutoNumber. Таким образом, просто пропустите это при вставке - он будет автоматически добавлен - и нет необходимости группировать по постоянным значениям:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...