r0x*_*tte 0 python sqlalchemy python-3.x
如何查看实际插入了多少行?
engine_str = 'mysql+mysqlconnector://root:mypass@localhost/mydb'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')
connection = engine.connect()
query = "INSERT INTO TEST(a,b,c)VALUES(1,2,3) ON DUPLICATE KEY UPDATE B = VALUES(B), C = VALUES(C)"
try:
connection.execute(query)
except Exception as e:
print(e)
Run Code Online (Sandbox Code Playgroud)
SQLALCHEMY 只是打印出这个 ID。
<sqlalchemy.engine.result.ResultProxy object at 0x0000000007769E80>
Run Code Online (Sandbox Code Playgroud)
PS 这个问题是关于行插入而不是行执行。因此,如果您使用 rowcount,它将显示查询已执行的次数。
重新表述我的问题:有没有办法查看插入和更新的记录数?理想情况下,我想知道那些更新的主键。
ResultProxy.rowcount 将显示受查询影响的行数。
例如:
>> r1 = connection.execute("INSERT INTO table (id, food, is_tasty) VALUES (1, 'apple', 't'), (2, 'broccoli', 'f'), (3, 'celery', 'f')")
>> print r1.rowcount
3
Run Code Online (Sandbox Code Playgroud)
这也适用于其他查询:
>> r2 = connection.execute("UPDATE table SET is_tasty = 't' WHERE is_tasty = 'f'")
>> print r2.rowcount
2
>> r3 = connection.execute("DELETE FROM table WHERE food = 'celery'")
>> print r3.rowcount
1
>> r4 = connection.execute("SELECT * FROM table")
>> print r4.rowcount
2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |