Как получить автоматически сгенерированный первичный ключ строки через гем Ruby PostgreSQL? - PullRequest
0 голосов
/ 29 августа 2018

Моя таблица в PostgreSQL выглядит так:

CREATE TABLE user (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
)

Я использую Ruby pg gem для добавления записи в таблицу:

c = PG.connect(dbname: 'foo')
id = c.exec_params('INSERT INTO user (name) VALUES ($1)', ['Jeff']).oid_value

Я получаю обратно nil вместо автоматически сгенерированного id новой записи. Как правильно вернуть его обратно?

1 Ответ

0 голосов
/ 29 августа 2018

Согласно документам , если идентификатор объекта, который вы получаете, не установлен, то есть ноль.

Вы должны либо самостоятельно установить идентификатор объекта, либо использовать returning следующим образом:

res  = conn.exec("INSERT INTO users (name) VALUES ('john') returning id")
res[0]['id']
#=> 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...