Как вставить в таблицу, которая содержит первичный ключ поля не идентичности - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь вставить таблицу в коммерческую базу данных, где я не могу изменить схему.Вставка пытается загрузить сотни записей.Таблица, в которую я вставляю, содержит поле первичного ключа, которое не является полем идентификации.Каков наилучший метод для заполнения этих вставок при сохранении целостности поля первичного ключа?

INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
  '', -- C_CUSTOMER - char(15)
  '', -- C_ACCOUNT - char(15)
  '', -- C_ADDTYPE - char(2)
  ???, -- I_BIF006PK - decimal(15, 0)
)

1 Ответ

1 голос
/ 19 июня 2019

Это предположение, так как у меня нет всех деталей.Я надеюсь, что это поможет.

Давайте предположим, что текущая существующая таблица до загрузки данных имеет PK с максимальным значением 1000.Затем новые строки могут начинаться с 1001.Для этого вы можете использовать последовательность.Например:

create sequence load_seq1 start with 1001

INSERT INTO ADVANCED.BIF006 ( C_CUSTOMER, C_ACCOUNT, C_ADDTYPE, I_BIF006PK)
VALUES (
  '', -- C_CUSTOMER - char(15)
  '', -- C_ACCOUNT - char(15)
  '', -- C_ADDTYPE - char(2)
  next value for load_seq1, -- I_BIF006PK - decimal(15, 0)
)

drop sequence load_seq1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...