compileUpsert method
String
compileUpsert(
- Map<
String, dynamic> query, - List<
Map< values,String, dynamic> > - List<
String> uniqueBy, [ - List<
String> ? update,
override
Compile an upsert statement.
Implementation
@override
String compileUpsert(
Map<String, dynamic> query,
List<Map<String, dynamic>> values,
List<String> uniqueBy, [
List<String>? update,
]) {
final sql = compileInsertMany(query, values);
final columns = update ?? values.first.keys.toList();
final updateSql = columns.map((col) {
final wrapped = wrap(col);
return '$wrapped = excluded.$wrapped';
}).join(', ');
final conflictCols = uniqueBy.map(wrap).join(', ');
return '$sql ON CONFLICT ($conflictCols) DO UPDATE SET $updateSql';
}