doUpdateSQL method

  1. @override
FutureOr doUpdateSQL(
  1. String entityName,
  2. String table,
  3. SQL sql,
  4. Object id,
  5. Transaction transaction,
  6. DBMySqlConnectionWrapper connection, {
  7. bool allowAutoInsert = false,
})
override

Implementation

@override
FutureOr doUpdateSQL(
  String entityName,
  String table,
  SQL sql,
  Object id,
  Transaction transaction,
  DBMySqlConnectionWrapper connection, {
  bool allowAutoInsert = false,
}) {
  if (sql.isDummy) return id;

  return connection
      .query(sql.sqlPositional, sql.parametersValuesByPosition)
      .resolveMapped((results) {
        var affectedRows = results.affectedRows;
        if (affectedRows == 0) {
          return autoInsertAfterNoopUpdate(
            transaction,
            entityName,
            table,
            sql,
            connection,
            allowAutoInsert: allowAutoInsert,
            logger: _log,
          );
        }

        return _resolveResultID(results, table, sql, id);
      });
}