我有sqlite的问题,因为我需要在UPDATE语句中使用LIMIT。 我使用以下命令编译了sqlite:
wget http://sqlite.org/2016/sqlite-autoconf-3140100.tar.gz
tar zxf sqlite-autoconf-3140100.tar.gz
cd sqlite-autoconf-3140100
./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1"
make
make install
当我检查是否使用了编译选项时结果为1,但是当我执行带限制的更新语句时,我收到了错误
sqlite> select sqlite_compileoption_used('SQLITE_ENABLE_UPDATE_DELETE_LIMIT');
1
sqlite> UPDATE table_name SET modified_at = date('now') WHERE id = 11 LIMIT 1;
Error: near "LIMIT": syntax error
我错过了什么吗?我找不到解决方案。 每个答案都表示赞赏。
我在docker容器上编译sqlite FROM php:5.6-apache
答案 0 :(得分:0)
如果定义了此选项,则在使用“lemon”工具生成parse.c文件时也必须定义它。因此,只有在从源构建库而不是从合并构建库时才能使用此选项。
答案 1 :(得分:0)
如果有人以这种方式遇到同样的问题我编译了sqlite
wget https://www.sqlite.org/2016/sqlite-src-3140100.zip
unzip sqlite-src-3140100.zip && cd sqlite-src-3140100
./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1"
make sqlite3.c
make install