Это мой первый пост на stackoverflow!Если я не смогу правильно следовать политике «задать вопрос», позвольте мне извиниться здесь.
С учетом сказанного я столкнулся с проблемой со столбцом «Идентичность» в AWS Redshift в связи сследующий пост, но другой вопрос:
Столбец идентификаторов не учитывается при вставке в () (Amazon Redshift)
Вопрос (Примеры предоставленыниже приведен «просто пример», чтобы проиллюстрировать проблему): «Если у меня есть max (identityColumn) = 100, для таблицы, содержащей 100 записей, почему новые записи, которые я вставляю позже, не будут иметь значение identityColumn больше, чем100? "
Ожидаемый результат: Если я добавлю 5 новых записей в новую таблицу, для identityColumn будут заданы значения" 101 "," 102 "," 103 "," 104 "," 105"
Фактический результат: новые записи имеют значения" 52 "," 57 "," 62 "...
Если я правильно понял из поста, который я вставил выше, столбец Идентичностьне всегда в последовательности или в последовательном порядке ... что нормально.Однако проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь вставить новые записи, столбец идентификаторов не продолжается с последнего значения «max».
Вот небольшие примеры типа используемого кода:
--- ПРИМЕР 1 ---
- 1.Создайте новую таблицу со столбцом идентификаторов
CREATE TABLE newTable_With_Identity
(
identityColumn bigint IDENTITY(1,1)
,column1
,column2
,column3
,column4
,column5
);
- 2.Вставьте данные из старой таблицы в новую таблицу идентификаторов
INSERT INTO newTable_With_Identity
(
column1
,column2
,column3
,column4
,column5
)
(Select * from oldtable order by column3 asc);
--- ПРИМЕР 2 ---
(То же, что и выше, но с изменением последнего оператора выбора на следующее)
(Select * from oldtable order by column1, column2, column3 asc);