Немногие знают, что при помощи загибания пальцев можно досчитать вовсе не до 10, а до 1023.


26.11.2009, 18:39

ID последней вставленной записи в PostgreSQL

Сегодня я расскажу пользователями PostgreSQL одну интересную возможность по аналогии с запросом select last_insert_id() в MySql, только более функциональная.Итак. возможность конечно же эта документирована, но далеко не каждый с ней знаком. В PostgreSQL можно получить любое поле(я) вставляемой записи(ей). Пример:

INSERT into TABLE (id,username, pass) values (nextval('id'), 'логин',md5('пароль')) RETURNING id

запрос, кроме того как вставит новую запись, также вернёт значение поля id, коротое было вычислено функцией nextval()

Таким же образом можно сразу возвращать значения несокльких вставляемых полей, например

INSERT into TABLE (id,username, pass) values (nextval('id'), 'логин','пароль') RETURNING id,pass

вернётся как id в первом поле, так и вычисленный md5 хеш во втором поле.

 

И ещё кое-что, можно возвращать значения полей сразу всех вставляемых записей, если их несколько в одном запросе

INSERT into TABLE (id,username, pass) values (nextval('id'), 'логин',md5('пароль')), (nextval('id'), 'логин',md5('пароль2'))  RETURNING id

Этот запрос вернёт 2 строки сразу по одному полю в каждой.

Теги: postgresql returning

Комментарии

Вы должны зарегистрироваться, чтобы оставлять комментарии

Строительство и проектирование объектов. Нижний Новгород


Rambler's Top100