У меня есть таблица, которую люди вставляют в получение первичного ключа, выполняя
SELECT max(id)+1 from table_a;
Я хочу добавить некоторые записи в эту таблицу с помощью INSERT INTO table_a SELECT ... FROM table_b, table_c ...
простого сценария SQL, и мне интересно, как генерировать первичные ключи. Моей первой мыслью было создание временной последовательности, но у Oracle, очевидно, нет select setval
для установки первого значения. Так как же получить текущее значение max (id) +1, чтобы установить параметр «start with» для моей последовательности?
Я нашел в сети что-то, что, как мне показалось, будет работать:
COLUMN S new_value st select max(id)+1 S from table_a;
CREATE SEQUENCE cra_seq start with &st;
Но на самом деле он не использует st в CREATE SEQUENCE
, а вместо этого предлагает мне ввести его, а это не то, что мне нужно.