Как включить ограничение на удаление в SQLite?
Используя PHP, у меня есть простая база данных, которая может хранить несколько элементов с одинаковым содержимым. Я хочу удалить первое вхождение экземпляра, когда я использую DELETE.
Как включить ограничение на удаление в SQLite с помощью PHP?
4 ответа:
Вы не можете включить эти опции из PHP, вам нужно скомпилировать SQLite самостоятельно, чтобы включить эти опции. Важно отметить, что вам нужно загрузить полную версию , а не исходный релиз amalgamation из SQLite download page.
Если вы работаете в Unix, возьмите
sqlite-3.6.20.tar.gz
tarball и загрузите его. Затем:tar xzf sqlite-3.6.20.tar.gz cd sqlite-3.6.20 export CFLAGS='-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1' ./configure make
Тогда у вас будет утилита командной строки
sqlite3
и файлы библиотеки в подкаталоге.libs
.
Вы можете использовать limit с select, а также комбинировать select и delete, как:
DELETE FROM Foo WHERE someColumn in ( SELECT someColumn FROM FOO WHERE SomeCondition LIMIT 200 )
Из здесь, Похоже, что вы должны скомпилировать исходный код SQLite, используя
#define SQLITE_ENABLE_UPDATE_DELETE_LIMIT
Для того, чтобы включить его.