2016-08-19 62 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