2016-08-19 61 views
1

我有sqlite的问题,因为我需要在UPDATE语句中使用LIMIT。 我一直在使用编译sqlite的这个命令:在更新语句中启用限制-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 

上午我遗漏了什么?我找不到解决方案。 每一个答案是赞赏。

我在泊坞窗容器编译源码从PHP 5.6的Apache

回答

0

documentation说:用“柠檬”时

如果这个选项被定义,那么它也必须定义工具来生成一个parse.c文件。正因为如此,只有在从源构建库时,才可以使用此选项,而不是从混合构建。

所以你必须要build your own amalgamation

+0

好,但你能不能给我的例子,我应该如何使用它呢? – Kamil

+0

我使用了错误的来源。当我使用替代源代码格式sqlite编译正确。谢谢 – Kamil

0

如果有人有同样的问题,这样我编译源码

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