insertGetId method

  1. @override
Future insertGetId(
  1. Map<String, dynamic> values, [
  2. String? sequence
])
inherited

Implementation

@override
Future insertGetId(Map<String, dynamic> values, [String? sequence]) async {
  try {
    if (values.isEmpty) {
      throw InvalidArgumentException(
        "Values map cannot be empty for insertGetId operation.",
      );
    }

    conn = await getConnection();
    final columns = values.keys.toList();
    final paramBindings = <String, dynamic>{};

    final placeholders = values.keys
        .map((key) {
          final paramName = _nextParamName();
          paramBindings[paramName] = values[key];
          return ":$paramName";
        })
        .join(", ");

    final query =
        "INSERT INTO $getTable (${columns.join(', ')}) VALUES ($placeholders)";
    final id = await conn.insert(query, paramBindings);
    return id;
  } catch (e) {
    rethrow;
  }
}