我运行了一个简单的插入命令:
INSERT INTO names (name) VALUES ('john')
作为响应,我得到了一个PG::Result对象。我已经研究了那些文档,但我无法从这个对象中获取所需的信息:刚刚插入的行的ID是多少?
我运行了一个简单的插入命令:
INSERT INTO names (name) VALUES ('john')
作为响应,我得到了一个PG::Result对象。我已经研究了那些文档,但我无法从这个对象中获取所需的信息:刚刚插入的行的ID是多少?
res = conn.exec("INSERT INTO names (name) VALUES ('john') returning *")
res[0]
res[0]['id']
我使用returning *
只是为了向您展示可以返回所有内容,而不仅仅是ID。但是,如果您仅需要ID或ID和其他某些列,请使用显式形式,就像您在选择列表中一样。
returning id, name
RETURNING id
,不过除此之外这个逻辑完全正确。 - Craig Ringer