数据填充文件最大一次能执行多少条sql
测试表迁移文件:
public function up()
{
Schema::create('location_points', function (Blueprint $table) {
$table->id();
$table->string('province', 20)->nullable()->comment('省');
$table->string('city', 20)->nullable()->comment('市');
$table->decimal('lng', 11, 8)->nullable()->comment('经度');
$table->decimal('lat',11,8)->nullable()->comment('纬度');
$table->timestamps();
});
}
数据填充文件:
public function run()
{
$data = [];
$date = date('Y-m-d H:i:s');
foreach (range(0,10000) as $key => $value){
$data[] = [
'province' => '山东省'.($key+1),
'city' => '济南'.($key+1),
'lng' => rand(0, 179) + (mt_rand()/mt_getrandmax()),
'lat' => rand(0,89) + (mt_rand()/mt_getrandmax()),
'created_at' => $date,
'updated_at' => $date
];
}
$bool = \Illuminate\Support\Facades\DB::table('location_points')
->insert($data);
Log::info('创建10000条测试数据状态:'. $bool);
}
问题:
我循环10000次数据能添加成功, 20000次就会包一大段错误, 目前看问题的提示是占位符使用太多.
本作品采用《CC 协议》,转载必须注明作者和本文链接
这是mysql的问题,Mysql使用PDO进行写入,默认支持的占位符最多为65535个,就是说你这个SQL语句太长了