Обновление строк в SQLite в Dart
Запрос UPDATE задает новые значения столбцов
и обычно ограничивает строки через WHERE.
Без условия изменится вся таблица.
Шаблон с ? связывает новое значение и
ключ строки:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('revise.db');
db.execute('''
CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
done INTEGER NOT NULL
)
''');
db.execute(
"INSERT INTO notes (title, done) VALUES ('draft', 0)",
);
db.execute(
'UPDATE notes SET done = ? WHERE id = ?',
[1, 1],
);
print(db.updatedRows);
db.dispose();
Счетчик updatedRows показывает, сколько
строк реально изменилось. Текстовые поля обновляют
тем же способом:
import 'package:sqlite3/sqlite3.dart';
var db = sqlite3.open('revise.db');
db.execute(
'UPDATE notes SET title = ? WHERE id = ?',
['final', 1],
);
var rows = db.select(
'SELECT title FROM notes WHERE id = ?',
[1],
);
if (rows.isNotEmpty) {
print(rows.first['title']);
}
db.dispose();
Создайте таблицу meters в utility.db
с полями label и reading, добавьте
строку и измените показание на 105 по
id 1.
Переименуйте метку с "kitchen" на
"hall" для той же записи и выведите
новую метку.