如何开启SQLite3默认关闭的功能?启用UPDATE带LIMIT相关配置的方法
SQLite开启UPDATE/DELETE语句LIMIT支持操作指南
SQLite默认不支持UPDATE/DELETE语句后加LIMIT的语法,需要开启编译选项SQLITE_ENABLE_UPDATE_DELETE_LIMIT后重新编译才能使用,具体操作步骤如下:
通用源码编译操作
单文件整合版编译
SQLite提供整合为单个C文件的发行版,编译步骤最简单:
- 下载SQLite官方amalgamation版本源码包,解压后得到
sqlite3.c和sqlite3.h两个核心文件 - 执行编译命令,直接带入开启参数:
gcc -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 sqlite3.c -o sqlite3 -lpthread -ldl - 编译完成后生成的
sqlite3二进制文件就已支持带LIMIT的更新、删除语句
完整configure编译流程
如果需要编译完整功能的SQLite可按以下步骤操作:
- 下载完整源码包并解压,进入源码目录
- 执行configure命令时带入编译参数:
CFLAGS="-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1" ./configure - 执行常规编译安装流程即可:
make sudo make install
编程语言绑定库开启方法
如果是通过编程语言的SQLite驱动使用,需要重新编译对应绑定库带入参数:
Python sqlite3/pysqlite3
- 首先安装对应依赖(Debian/Ubuntu环境为例):
sudo apt install libsqlite3-dev python3-dev - 执行pip命令重新编译安装pysqlite3:
CFLAGS="-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1" pip install pysqlite3 --force-reinstall --no-binary :all:
Node.js sqlite3模块
- 安装模块时指定编译参数即可:
npm install sqlite3 --build-from-source --sqlite3="--enable-update-delete-limit"
注意:所有系统预安装的SQLite二进制版本、各语言预编译的SQLite驱动包默认都没有开启该参数,必须自行重新编译对应组件才能生效。
内容的提问来源于stack exchange,提问作者mo taar
相关产品推荐
相关产品推荐

