Удаление строк из SQLite в Dart
Запрос DELETE FROM убирает строки из таблицы.
Условие WHERE ограничивает удаление; без
него таблица опустеет полностью.
DELETE с ? безопасно принимает
значение фильтра:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('trim.db');
db.execute('''
CREATE TABLE IF NOT EXISTS queue (
id INTEGER PRIMARY KEY,
task TEXT NOT NULL,
active INTEGER NOT NULL
)
''');
db.execute(
"INSERT INTO queue (task, active) VALUES ('old', 0)",
);
db.execute(
"INSERT INTO queue (task, active) VALUES ('new', 1)",
);
db.execute(
'DELETE FROM queue WHERE active = ?',
[0],
);
print(db.updatedRows);
db.dispose();
После удаления выборка показывает оставшиеся строки.
Агрегат COUNT помогает проверить эффект:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('trim.db');
var rows = db.select('SELECT COUNT(*) AS total FROM queue');
if (rows.isNotEmpty) {
print(rows.first['total']);
}
db.dispose();
Создайте таблицу tickets_log в box.db
с полями code и sold, добавьте
две записи и удалите строки, где sold
равен 0.
Выведите, сколько записей осталось в таблице
tickets_log, обойдя все строки выборкой.