获取“ declarative_base()”中最后插入的记录的主键

莫吉塔巴

我想获取最后插入的主键,对此我已经知道两种方法:

1)“ lastrowid”与“原始SQL”

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, text

engine = create_engine('sqlite://')

meta = MetaData()

tbl = Table('tbl', meta,
    Column('f1', Integer, primary_key=True),
    Column('f2', String(64))
)

tbl.create(engine)

sql = text("INSERT INTO tbl VALUES (NULL, 'some_data')")
res = engine.execute(sql)

print(res.lastrowid)

2)带“ insert()”的“ inserted_primary_key”

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String

engine = create_engine('sqlite://')

meta = MetaData()

tbl = Table('tbl', meta,
    Column('f1', Integer, primary_key=True),
    Column('f2', String(64))
)

tbl.create(engine)

ins = tbl.insert().values(f2='some_data')
res = engine.execute(ins)

print(res.inserted_primary_key)

但我的问题是“ declarative_base()”

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite://')

Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

class TBL(Base):
    __tablename__ = 'tbl'

    f1 = Column(Integer, primary_key=True)
    f2 = Column(String(64))

Base.metadata.create_all(engine)

rcd = TBL(f2='some_data')

session.add(rcd)
session.commit()

如果我这样做:

res = session.add(rcd)

它给我“无”。或者如果我这样做:

res = session.commit()

同样的事情发生了。我的问题是:

在“ declarative_base()”的情况下,有什么好的方法来访问“ lastrowid”或“ inserted_primary_key”吗?

最好的方法是什么?

法官

调用后session.commit(),访问rcd.f1将返回其生成的主键。在提交到期后,SQLAlchemy会自动从数据库中重新加载对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取“ declarative_base()”中最后插入的记录的主键

来自分类Dev

获取数据库中最后插入的主键记录

来自分类Dev

如何获取Android中最后插入的记录?

来自分类Dev

如何获取表中最后插入的记录?

来自分类Dev

如何获取最后插入的主键

来自分类Dev

如何获取最后插入的主键

来自分类Dev

在调用 lastInsertId() 以获取 PDO 中最后插入的 ID 之前是否必须插入新记录?

来自分类Dev

如何获取最后插入的记录

来自分类Dev

插入新行并获取主键或获取现有记录的主键

来自分类Dev

获取最后插入的varchar id,它是主键

来自分类Dev

获取最后插入的行的复杂主键

来自分类Dev

使用output关键字获取SQL Server中最后插入的记录?

来自分类Dev

如何获取特定ID的最后插入记录?

来自分类Dev

获取Laravel 4中最后插入的ID

来自分类Dev

获取PHP和MySQL中最后插入的ID

来自分类Dev

如何获取MVC中最后一次插入的ID?

来自分类Dev

使用主键获取最后一种相同的记录值

来自分类Dev

使用主键获取最后相同类型的记录值

来自分类Dev

如何在多个记录插入中获取最后插入的ID?

来自分类Dev

获取最后插入的ID

来自分类Dev

如何从核心数据库获取最后插入的记录?

来自分类Dev

如何在symfony1.4中获取最后插入的记录

来自分类Dev

PHP无法获取插入的最后一条记录的ID

来自分类Dev

使用多列主键插入MySQL表后如何获取最后插入的ID

来自分类Dev

如何使用join和group by获取Rails中最后输入的记录字段?

来自分类Dev

mysql如何获取触发器中最后插入的行值

来自分类Dev

如何获取PHP中最后插入的行值并将其添加1

来自分类Dev

我可以使用pop()获取Mongoose中最后插入的子文档吗?

来自分类Dev

从触发器中的表中获取非自动增量主键的最后输入值插入

Related 相关文章

  1. 1

    获取“ declarative_base()”中最后插入的记录的主键

  2. 2

    获取数据库中最后插入的主键记录

  3. 3

    如何获取Android中最后插入的记录?

  4. 4

    如何获取表中最后插入的记录?

  5. 5

    如何获取最后插入的主键

  6. 6

    如何获取最后插入的主键

  7. 7

    在调用 lastInsertId() 以获取 PDO 中最后插入的 ID 之前是否必须插入新记录?

  8. 8

    如何获取最后插入的记录

  9. 9

    插入新行并获取主键或获取现有记录的主键

  10. 10

    获取最后插入的varchar id,它是主键

  11. 11

    获取最后插入的行的复杂主键

  12. 12

    使用output关键字获取SQL Server中最后插入的记录?

  13. 13

    如何获取特定ID的最后插入记录?

  14. 14

    获取Laravel 4中最后插入的ID

  15. 15

    获取PHP和MySQL中最后插入的ID

  16. 16

    如何获取MVC中最后一次插入的ID?

  17. 17

    使用主键获取最后一种相同的记录值

  18. 18

    使用主键获取最后相同类型的记录值

  19. 19

    如何在多个记录插入中获取最后插入的ID?

  20. 20

    获取最后插入的ID

  21. 21

    如何从核心数据库获取最后插入的记录?

  22. 22

    如何在symfony1.4中获取最后插入的记录

  23. 23

    PHP无法获取插入的最后一条记录的ID

  24. 24

    使用多列主键插入MySQL表后如何获取最后插入的ID

  25. 25

    如何使用join和group by获取Rails中最后输入的记录字段?

  26. 26

    mysql如何获取触发器中最后插入的行值

  27. 27

    如何获取PHP中最后插入的行值并将其添加1

  28. 28

    我可以使用pop()获取Mongoose中最后插入的子文档吗?

  29. 29

    从触发器中的表中获取非自动增量主键的最后输入值插入

热门标签

归档