Пример:
create table foo(
id serial,
txt text
);
insert into foo(txt) values ('a'),('b'),('c') returning id;
Возврат:
id
----
1
2
3
(3 rows)
Кажется, что первый id в возвращаемом значении всегда будет id для 'a', второй для 'b' и т.д., но это определенное поведение insert into, или оно совпадение, которое может потерпеть неудачу при нечетных обстоятельствах?