Pull to refresh

Получение id добавленной записи в PostgeSQL

PostgreSQL *
Каким бы супер-пупер спецом вы не были — в процессе разработки эпизодически попадаются интересные и удобные вещи о которых, казалось бы, давно бы пора знать, но все никак не складывалось. Этакий ништячок, найдя который хочется воскликнуть: «Эврика!». Вот таким ништячком для меня стал элемент синтаксиса INSERT в PostgreSQL, которым я и хочу поделиться с вами.

Ситуация: После добавления записи в базу нужно получить id этой самой свеже-вставленной записи.
Решение на PostgreSQL: INSERT… RETURNING id где id — это PRIMARY_KEY в таблице.

Просто и элегантно, не правда ли?

Подробный пример:

postgres=# create table test (id serial,name text);
NOTICE: CREATE TABLE will create implicit sequence "test_id_seq" for serial column "test.id"
CREATE TABLE
postgres=# INSERT INTO test (name) VALUES ('My Name') RETURNING id;
id
----
1
postgres=# INSERT INTO test (name) VALUES ('My Name 1') RETURNING id;
id
----
2
(1 row)
Tags:
Hubs:
Total votes 51: ↑29 and ↓22 +7
Views 48K
Comments Comments 36