使用 C API 获取 SQLite 语句受影响的行数

问题描述 投票:0回答:3

我正在使用 SQLite 3 C API 执行

DELETE
语句,我想知道如何获取受影响的行数。

不幸的是,没有诸如

sqlite3_affected_rows
或类似的功能。

c sqlite sql-delete rows-affected
3个回答
19
投票

10
投票

运行这个。

select changes(),total_changes();

changes() 函数返回最近完成的INSERT、DELETE 或 UPDATE 语句更改、插入或删除的数据库行数

total_changes() 函数返回自当前数据库连接打开以来

由 INSERT、UPDATE 或 DELETE 语句引起的行更改数。

(强调)


0
投票
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()

© www.soinside.com 2019 - 2024. All rights reserved.