Получить сгенерированный идентификатор автоинкремента после выполнения запроса на вставку - HANA
Я хочу получить идентификатор автоинкремента для вставки с помощью hana db. мы пробовали поиск в интернете, также пытались использовать опцию jdbc keyholder. Поддержка автоинкремента пришла недавно в Хану, и я не получаю пример для того же, есть ли способ сделать это?
1 ответ
Я предполагаю, что под "автоинкрементом" вы имеете в виду опцию столбца IDENTITY, поставляемую с HANA SPS 8?
CREATE COLUMN TABLE <table_name> (<column_name> <num_data_type
GENERATED BY DEFAULT AS IDENTITY);
Этот пост в блоге объясняет, как это работает:
https://blogs.sap.com/2014/06/04/quick-note-on-identity-column-in-sap-hana/
--- Цитата: ---
Волшебство позади этого конечно создано последовательностями:
select column_name, column_id from table_columns where table_name = 'SOME_NAMES'
+-------------+-----------+
| COLUMN_NAME | COLUMN_ID |
+-------------+-----------+
| ID | 145210 |
| NAME | 145211 |
+-------------+-----------+
select * from sequences where sequence_name like ‘%145210%’
+-------------+---------------------------+--------------+--------------+-----------+------------------+--------------+-----------+-------------------------------------------+------------+
| SCHEMA_NAME | SEQUENCE_NAME | SEQUENCE_OID | START_NUMBER | MIN_VALUE | MAX_VALUE | INCREMENT_BY | IS_CYCLED | RESET_BY_QUERY | CACHE_SIZE |
+-------------+---------------------------+--------------+--------------+-----------+------------------+--------------+-----------+-------------------------------------------+------------+
| SYSTEM | _SYS_SEQUENCE_145210_#0_# | 145215 | 1 | 1 | 4611686018 | | | | |
+-------------+---------------------------+--------------+--------------+-----------+------------------+--------------+-----------+-------------------------------------------+------------+
Дааа, вот и все.
--- конец цитаты ---
Отсюда вы можете использовать CURRVAL для получения последнего сгенерированного значения.
SELECT SYSTEM."_SYS_SEQUENCE_145210_#0_#".CURRVAL FROM DUMMY