updateByKey method
Future<RowData?>
updateByKey({
- List<
Object> ? columns, - List<
Object> ? excludes, - SQLExecutor? executor,
Implementation
Future<RowData?> updateByKey({List<Object>? columns, List<Object>? excludes, SQLExecutor? executor}) async {
List<MapEntry<TableColumn, dynamic>> values = _fieldValues(columns: columns, excludes: excludes);
values.removeWhere((e) => e.key.proto.primaryKey);
values.retainWhere((e) => e.value != null);
if (columns != null && columns.isNotEmpty) {
values.retainWhere((e) => columns.contains(e.key.columnName));
}
if (values.isEmpty) return null;
Returning ret = Returning.ALL;
QueryResult qr = await (executor ?? _executor).update(_tableName, values: values, where: _keyWhere, returning: ret);
RowData? row = qr.firstRow();
if (row != null) {
this.model.addAll(row.toMap());
}
return row;
}