如何通过Ruby PostgreSQL gem获取自动生成的行主键?
我在PostgreSQL中的表如下所示:如何通过Ruby PostgreSQL gem获取自动生成的行主键?,ruby,postgresql,Ruby,Postgresql,我在PostgreSQL中的表如下所示: CREATE TABLE user ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL ) res = conn.exec("INSERT INTO users (name) VALUES ('john') returning id") res[0]['id'] #=> 1 我正在使用Ruby gem向表中添加一条记录: c = PG.connect(dbname: 'foo') i
CREATE TABLE user (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL
)
res = conn.exec("INSERT INTO users (name) VALUES ('john') returning id")
res[0]['id']
#=> 1
我正在使用Ruby gem向表中添加一条记录:
c = PG.connect(dbname: 'foo')
id = c.exec_params('INSERT INTO user (name) VALUES ($1)', ['Jeff']).oid_value
我将返回nil
,而不是自动生成的新记录的id
。取回它的正确方法是什么?根据,如果您检索的对象id未设置,则为零
您可以自己设置对象id,也可以像这样使用返回
:
CREATE TABLE user (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL
)
res = conn.exec("INSERT INTO users (name) VALUES ('john') returning id")
res[0]['id']
#=> 1