insertOnConflictUpdate method Null safety

Future<int> insertOnConflictUpdate(
  1. Insertable<D> entity
)

Attempts to insert entity into the database. If the insert would violate a primary key or uniqueness constraint, updates the columns that are present on entity.

Note that this is subtly different from InsertMode.replace! When using InsertMode.replace, the old row will be deleted and replaced with the new row. With insertOnConflictUpdate, columns from the old row that are not present on entity are unchanged, and no row will be deleted.

Be aware that insertOnConflictUpdate uses an upsert clause, which is not available on older sqlite implementations.

Implementation

Future<int> insertOnConflictUpdate(Insertable<D> entity) {
  return insert(entity, onConflict: DoUpdate((_) => entity));
}