SQLAlchemy核心插入不会将数据插入db

时间:2018-11-30 10:19:06

标签: python sql-server sqlalchemy

我遇到这样的问题,当我尝试使用connection.execute(table.insert(), list_of_rows)插入数据时,SQLAlchemy Core无法插入行。我构造的连接对象没有任何其他参数,这意味着connection = engine.connect()和引擎仅具有一个附加参数engine = create_engine(uri, echo=True)。 除了无法在db中找到数据外,我也无法在应用日志中找到“ INSERT”语句。

在py.test测试期间重现此问题可能很重要。

我使用的数据库是docker容器中的mssql。

EDIT1: 无论我是否使用事务,或者是否将插入更改为connection.execute(table.insert().execution_options(autocommit=True), list_of_rows).rowcount

,proxyresult的行数始终为-1

EDIT2: 我重写了这段代码,现在可以正常工作了。我看不出有什么大不同。

1 个答案:

答案 0 :(得分:1)

connection.execute之后插入的行数是多少?

代理= connection.execute(table.insert(),list_of_rows)    打印(proxy.rowcount)

如果rowcount是正整数,则证明确实将数据写入了DB,但是可能仅存在于事务中,如果这样,则可以检查是否已启用自动提交:https://docs.sqlalchemy.org/en/latest/core/connections.html#understanding-autocommit