getIdOrInsert method

Future<int> getIdOrInsert(
  1. String tableName,
  2. String where,
  3. List<Object?> whereArgs,
  4. String set,
  5. List<Object?> setArgs,
)

Implementation

Future<int> getIdOrInsert(String tableName, String where, List<Object?> whereArgs, String set, List<Object?> setArgs) async {
  var id = await fetchOne<int>('SELECT `id` FROM $tableName WHERE $where', whereArgs);
  id ??= (await query('INSERT INTO $tableName SET $set ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(`id`);', setArgs)).lastInsertID.toInt();
  return id;
}