Sqlite参考手册
C界面 | C Interface
Data Change Notification Callbacks
void *sqlite3_update_hook(
sqlite3*,
void(*)(void *,int ,char const *,char const *,sqlite3_int64),
void*
);
每当在 rowid 表中更新,插入或删除行时, sqlite3_update_hook() 接口将注册一个回调函数,该函数的第一个参数标识的数据库连接将被调用。通过先前调用此函数为同一数据库连接设置的任何回调都将被覆盖。
第二个参数是指向在 rowid 表中更新,插入或删除行时要调用的函数的指针。回调函数的第一个参数是 sqlite3_update_hook() 的第三个参数的副本。第二个回调参数是 SQLITE_INSERT , SQLITE_DELETE 或 SQLITE_UPDATE 之一,具体取决于导致回调被调用的操作。回调的第三个和第四个参数包含指向包含受影响行的数据库和表名称的指针。最后的回调参数是行的 rowid 。在更新的情况下,这是更新发生后的 rowid 。
当内部系统表被修改时(例如,sqlite_master 和 sqlite_sequence ),不会调用更新挂钩。当 WITHOUT ROWID 表被修改时,不会调用更新挂钩。
在当前实现中,当冲突行由于 ON CONFLICT REPLACE 子句而被删除时,不会调用更新挂钩。当使用截断优化删除行时,更新钩子也不会被调用。本段中定义的异常可能会在未来的 SQLite 版本中发生变化。
The update hook implementation must not do anything that will modify the database connection that invoked the update hook. Any actions to modify the database connection must be deferred until after the completion of the sqlite3_step() call that triggered the update hook. Note that sqlite3_prepare_v2() and sqlite3_step() both modify their database connections for the meaning of "modify" in this paragraph.
sqlite3_update_hook(D,C,P) 函数返回前一个调用的 P 参数在同一个数据库连接 D 上,或者在 D 上第一次调用时返回 NULL 。
另请参阅 sqlite3_commit_hook() ,sqlite3_rollback_hook() 和 sqlite3_preupdate_hook() 接口。
另请参见对象,常量和函数的列表。
SQLite is in the Public Domain.
C界面 | C Interface相关

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来
主页 | https://sqlite.org/ |
源码 | https://www.sqlite.org/src/ |
发布版本 | 3.21.0 |