#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 ...)