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 updateColumns = update ??
values.first.keys.where((k) => !uniqueBy.contains(k)).toList();
final updates = updateColumns.map((col) {
final wrapped = wrap(col);
return '$wrapped = VALUES($wrapped)';
}).join(', ');
return '$sql ON DUPLICATE KEY UPDATE $updates';
}