If I execute the below query ``` CREATE TABLE users ( id serial primary key, name varchar(255) ) INSERT INTO users (name) VALUES ('a'), ('b'), ('c') RETURNING id ``` Is there any chance that the order of the returned ids is different from the order of data passed To be more clear, if the returned ids are `1, 2, 3`, is it guaranteed that the data order is ((1, a), (2, b), (3, c)) or can it be ((1, b), (2, a), (3, c))?
There is no guarantee that insertion will happen in any particular order. If you have to associate a given generated id with a given record either the record must have it own natural key (in which case return both the natural and surrogate keys) or you have to insert one record at a time.