addUpdateStatement method

void addUpdateStatement(
  1. UpdateStatement<Object, GeneratedTable<Object, dynamic>> update
)

Implementation

void addUpdateStatement(UpdateStatement update) {
  statement.buffer.write('UPDATE ');
  addFromResultSet(
    FromResultSet(update.resultSet),
    isWatching: false,
    write: UpdateKind.update,
  );
  statement.buffer.write(' SET ');

  // hasMultipleTable must be set before adding the values in case a table is referenced
  if (update.fromClause?.elements.isNotEmpty == true) {
    statement.hasMultipleTables = true;
  }

  addUpdateValues(update.updatedColumns);

  if (update.fromClause case final fromClause?) {
    fromClause.compileWith(this);
  }

  if (update.whereClause case final where?) {
    statement.space();
    where.compileWith(this);
  }

  if (update.returning case final returning?) {
    statement.space();
    returning.compileWith(this);
  }
  statement.buffer.write(';');
}