我正在使用 SQLite 3 C API 执行
DELETE
语句,我想知道如何获取受影响的行数。
不幸的是,没有诸如
sqlite3_affected_rows
或类似的功能。
运行这个。
select changes(),total_changes();
changes() 函数返回最近完成的INSERT、DELETE 或 UPDATE 语句更改、插入或删除的数据库行数
total_changes() 函数返回自当前数据库连接打开以来由 INSERT、UPDATE 或 DELETE 语句引起的行更改数。
(强调)
rowcount
,它只是DELETE语句的示例函数。
def delete_data():
"""Deletes data from database based on id given"""
print("you have choosen to DELETE data!!!")
print("")
id = input ("enter id: ")
# cursor.execute always return number of affected row for INSERT, UPDATE, DELETE
record_number = cursor.execute("delete from student where id = ?", [id])
# this is the row number that is deleted by database, it is kept in this parameter
if record_number.rowcount > 0:
print("your data ({} row) has been DELETED successfully!!!".format(record_number.rowcount))
else:
print("No data found for id {}".format(id))
print("")
db.commit()