Итак, у меня есть две таблицы в Oracle. Таблица A является основной таблицей, а таблица B - данными, полученными от подрядчика. Оба они имеют одинаковую общую структуру. В конце концов, я хотел бы INSERT INTO TABLE A(SELECT * FROM TABLE B)
. Однако столбец первичного ключа в таблице B не существует. Как вы предлагаете создать первичный ключ, который одновременно генерирует последовательность из 4328 и далее для каждой строки в таблице B?Как создать последовательность в oracle сверху вниз
я продолжил делать следующее:
create sequence myseq
increment by 1
start with 4328
MAXVALUE 99999
NOCACHE
NOCYCLE;
Затем создал столбец PK, наконец, реализованы следующие:
INSERT INTO TABLE B (PK) VALUES(MYSEQ.nextVal);
Но никаких результатов не дали, кроме сдачи в одном ряду в самом конце. Я хочу, чтобы каждая строка была заполнена, начиная с 4328 и заканчивая 291 строкой позже.
Ну, да, ваша вставка создаст один ряд. Вам нужно написать скрипт pl/sql для цикла и выполнить несколько вставок. – OldProgrammer
В любом случае вокруг этого? Я использую SQL Developer. – user40720
Вы вставляете новые строки или обновляете новый столбец PK для существующих строк? –