Хранить сгенерированный первичный ключ во временной переменной db2

#sql #db2 #udb

#sql #db2 #udb

Вопрос:

Я нахожусь в процессе написания SQL-скрипта с пакетной загрузкой, и я хотел бы сохранить сгенерированный первичный ключ инструкции insert во временной переменной и использовать его для ссылки на внешний ключ в других таблицах. Есть идеи?

Я делаю следующее:

 Y = INSERT INTO X(.....)

INSERT INTO Z(...,Y,);
  

Комментарии:

1. какой фактический SQL вы используете? Вы получаете сообщение об ошибке?

2. У вас нет уникального естественного ключа (уникального ключа, который не id является идентификатором автогенерации)? Кроме того, если вы не обрабатываете построчно, вы можете хранить только один (или некоторое ограниченное число) идентификатор одновременно таким образом (при условии, что ваша версия DB2 поддерживает объявление переменных) — это может быть медленным. Кроме этого … ищите ссылку на изменение таблицы данных , возможно NEW TABLE(INSERT ....) , предложение.

Ответ №1:

Я знаю, что в SQL Server вы можете сделать:

 INSERT INTO MyTable ....
SELECT @Foo = @@IDENTITY

INSERT INTO SomeOtherTable(... fk_col ...) VALUES (... @foo ...)