Python SQLAlchemy在插入后返回ID

时间:2016-09-30 08:45:02

标签: python mysql postgresql sqlalchemy

我希望在使用SQLAlchemy插入postgresql后获取最后插入记录的ID。这是代码,

insert_record = {list of data}
result = connection.execute(tbl_example.insert().returning(tbl_example.c.id), insert_record)
print result.id

插入很好,但我似乎无法获取最后插入的ID,我收到以下错误,

  

AttributeError:' ResultProxy'对象没有属性' id'

返回对象中的返回ID在哪里?

1 个答案:

答案 0 :(得分:-1)

它直接位于返回对象中。有documentation:

的例子
stmt = table.update().\
          where(table.c.data == 'value').\
          values(status='X').\
          returning(table.c.server_flag,
                    table.c.updated_timestamp)

for server_flag, updated_timestamp in connection.execute(stmt):
    print(server_flag, updated_timestamp)

此外,ResultProxy supports通过positon(如示例)和名称访问。因此,您可以使用以下内容:row_id = result['id']