insertAll method
return affectedRows
await db.insertAll(
table: 'table',
insertData: [
{
'telphone': '13888888888',
'create_time': 1111111,
'update_time': 12121212,
'email': 'biner@dd.com'
},
{
'telphone': '13881231238',
'create_time': 324234,
'update_time': 898981,
'email': 'xxx@dd.com'
}
]);
Implementation
Future<int> insertAll({
required String table,
required List<Map<String, dynamic>> insertData,
replace = false,
debug = false,
}) async {
if (insertData.isEmpty) {
throw ('insertData.length!=0');
}
table = _tableParse(table);
List<String> _fields = [];
List<String> _values = [];
insertData.first.forEach((key, value) => _fields.add('`$key`'));
insertData.forEach((val) {
List _t = [];
val.forEach((key, value) {
if (value is num) {
_t.add(value);
} else {
if (value is String) {
_t.add('\'${sqlEscapeString(value)}\'');
} else {
_t.add('\'$value\'');
}
}
});
_values.add('(${_t.join(',')})');
});
String _fieldsString = _fields.join(',');
String _valuesString = _values.join(',');
String _sql =
'${replace ? 'REPLACE' : 'INSERT'} INTO $table ($_fieldsString) VALUES $_valuesString';
ResultFormat result = await query(_sql, debug: debug);
return result.affectedRows;
}