update method

  1. @override
Future<int> update(
  1. Map<String, Object?> values
)

Update rows and return number of changes.

var userEloquent = UserEloquent();

// update name of all rows to 'john'.
userEloquent.update({'name':'john'});

// update name of rows where id = 1 to 1.
userEloquent.where('id',1).update({'name':'john'});

Implementation

/// ```dart
/// var userEloquent = UserEloquent();
///
/// // update name of all rows to 'john'.
/// userEloquent.update({'name':'john'});
///
/// // update name of rows where id = 1 to 1.
/// userEloquent.where('id',1).update({'name':'john'});
///
/// ```
@override
Future<int> update(Map<String, Object?> values) async {
  String q = 'Update $tableName';
  try {
    for (var val in values.entries) {
      if (columns.contains(val.key)) {
        q += ' SET ${val.key} = "${val.value}"';
        if (val.key != values.keys.last) {
          q += ',';
        }
      }
    }

    resetDistinct();
    resetGroupBy();
    resetSelectedColunns();
    resetSort();
    var selectQuery =
        generateQuery('Select $getPrimaryColumn from $tableName');
    q += ' WHERE $tableName.$getPrimaryColumn IN ($selectQuery)';
    resetAll();
    final db = await getDatabase;
    return await db.rawUpdate(q);
  } catch (e) {
    throw Exception('Generated query: "$q" \n' + e.toString());
  }
}