updateRecord method
Implementation
@override
Future<void> updateRecord(
String tableName,
dynamic id,
Map<String, dynamic> data,
) async {
final tableInfo = database.allTables.firstWhere(
(t) => t.actualTableName == tableName,
);
final pkColumn = tableInfo.primaryKey.first.name;
final assignments = data.keys
.where((k) => k != pkColumn)
.map((k) => '$k = ?')
.join(', ');
final values = data.entries
.where((e) => e.key != pkColumn)
.map((e) => e.value)
.toList();
values.add(id);
final sql = 'UPDATE $tableName SET $assignments WHERE $pkColumn = ?';
await database.customUpdate(
sql,
variables: values.map((v) => Variable(v)).toList(),
);
}