Как сохранить последнее серийное значение в Postgres? - PullRequest
0 голосов
/ 10 сентября 2010

Вот как я делаю в SQL Server:

insert into users(name, password) values('admin', '1');
declare @id int;
set @id = @@identity;
insert into usersroles values(@id, 1);
insert into usersroles values(@id, 2);

@@identity в сервере sql последний вставленный идентификатор (серийный номер)

Как сделать то же самое в Postgres?

Ответы [ 2 ]

5 голосов
/ 10 сентября 2010

Самый простой способ - использовать предложение RETURNING для INSERT:

INSERT INTO users (name, password) VALUES ('admin', '1') RETURNING id;

Это вернет одну строку, содержащую присвоенный идентификатор.

Другой вариант - использовать currvalФункция после вставки в таблицу пользователей:

SELECT currval('users_id_seq');
1 голос
/ 10 сентября 2010

из промежутков:

  INSERT INTO Table1 (...)
    VALUES (...);

  GET DIAGNOSTICS res_oid = RESULT_OID;

  SELECT INTO ...
    FROM Table1 t
    WHERE t.oid = res_oid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...