我遇到这样的问题,当我尝试使用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
EDIT2: 我重写了这段代码,现在可以正常工作了。我看不出有什么大不同。
答案 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 >