Нужна помощь для базы данных SQLite - PullRequest
2 голосов
/ 15 февраля 2011

Я использую SQLite для своего приложения. когда я использовал команду truncate в SQLite, она выдает ошибку типа « Синтаксическая ошибка рядом с усечением ».

Может ли кто-нибудь помочь мне решить эту проблему или любую другую альтернативу усечения, кроме команды DELETE.

Ответы [ 4 ]

1 голос
/ 30 марта 2011

SQLite DELETE FROM не эквивалентен T-SQL TRUNCATE TABLE.

SQLite DELETE FROM не будет сбрасывать индекс в поле, помеченном autoincrement.

1 голос
/ 15 февраля 2011

Почему бы не УДАЛИТЬ?
УДАЛИТЬ с пустым предложением WHERE должно быть довольно быстрым в SQLite, потому что он выполняет "оптимизацию усечения", см.

http://www.sqlite.org/lang_delete.html

1 голос
/ 15 февраля 2011

Оптимизация усечения SQLLite Delete DELETE FROM {table}; (без предложения WHERE) имеет поведение, аналогичное SQL Server TRUNCATE TABLE {table};. См. Документацию SQLLite здесь

Оптимизация усечения

Когда WHERE опущен в операторе DELETE, а в удаляемой таблице нет триггеров, SQLite использует оптимизацию для удаления всего содержимого таблицы без необходимости посещения каждой строки таблицы по отдельности. Эта «усеченная» оптимизация делает удаление намного быстрее. До SQLite версии 3.6.5 (2008-11-12) оптимизация усечения также означала, что интерфейсы sqlite3_changes () и sqlite3_total_changes () и прагма count_changes фактически не будут возвращать количество удаленных строк. Эта проблема была исправлена ​​в версии 3.6.5 (2008-11-12).

Оптимизацию усечения можно навсегда отключить для всех запросов, перекомпилировав SQLite с переключателем времени компиляции SQLITE_OMIT_TRUNCATE_OPTIMIZATION.

0 голосов
/ 15 февраля 2011

Нет.

Просто используйте DELETE без аргументов.

Вот как это реализовано на уровне абстракции базы данных Drupal 7:

http://api.drupal.org/api/drupal/includes--database--sqlite--query.inc/function/TruncateQuery_sqlite%3A%3A__toString/7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...