我在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
。找回它的正确方法是什么?
答案 0 :(得分:3)
根据docs,如果未设置您要检索的对象ID,则为零。
您要么自己设置对象ID,要么像这样使用returning
:
res = conn.exec("INSERT INTO users (name) VALUES ('john') returning id")
res[0]['id']
#=> 1