Как включить ограничение для удаления в SQLite?

с помощью PHP, у меня есть простая база данных, которая может хранить несколько элементов с одинаковым содержанием. Я хочу удалить первое вхождение экземпляра при использовании DELETE.

Как включить ограничение на удаление в SQLite с помощью PHP?

4 ответов


вы не можете включить эти параметры в PHP, вам нужно скомпилировать SQLite самостоятельно для того, чтобы включить эти функции. Важно отметить, что вам нужно скачать полная версия, а не объединение исходный релиз от SQLite страница загрузки.

если вы находитесь в 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
)

DELETE FROM table WHERE rowid = (SELECT rowid FROM table WHERE condition LIMIT 1 )

С здесь, похоже, вам нужно скомпилировать исходный код SQLite с помощью

#define SQLITE_ENABLE_UPDATE_DELETE_LIMIT

для того, чтобы включить его.