Я хотел бы создать файл SQL для вставки тестовых данных в мою базу данных. У меня есть глобальная последовательность для всей базы данных, и я тоже хотел бы использовать ее здесь.Как повторно использовать значения последовательности в качестве внешнего ключа в файле DML SQL PostgreSQL?
Для этого при создании полей PK id
я использую nextval("mySeq")
. Чтобы ссылаться на это позже в FK, я могу использовать currval("mySeq")
. Проблема возникает, когда я создаю таблицу с несколькими FK. В этом случае мне нужно несколько предыдущих значений из последовательности.
Вот маленький пример:
insert into table1 (id) values(nextval("seq"));
insert into table2 (id) values(nextval("seq"));
insert into table3 (id) values(nextval("seq"));
insert into table_sum (table1_FK, table2_FK, table3_FK) values (?????????????)
Что/я должен делать в этом случае? Если это не правильный способ сделать это, я также заинтересован в альтернативных решениях. :)
, так что если вы вставляете 4 строки, вам нужно будет окунуться в таблицу_sum с четырьмя столбцами? .. –
Это похоже на действительно странный дизайн –
@a_horse_with_no_name Почему? Я открыт для лучших решений, но что странно? –