我收到的帖子数据为字符串,如下所示:
data01,data02
data11,
data21,data22
...
dataxx,dataxx数据可以长达10.000行,第1列是强制且唯一的,第2列是可选的。
因此,对字符串进行清理(确保列1唯一(仅在输入数据中,而不是通过DB)、格式等)。并将其转换为数组:
[0:
[col1: data01,
col2: data02],
1:
[col1: data11,
col2: ""],
2:
[col1: val11,
col2: val12],
.....
9999:
[col1: dataxx,
col2: dataxx],
]所以这个数组现在放在我的控制器..。
现在,依我看,最好通过存储的Proc将数组发送到mysql,并让SP执行批量插入工作(请告诉我是否有更好的方法,以及为什么)
问题:
还有一个附带的问题,如果我问了:
$validator = Validator::make($request->all(), [
'array.*.column1' => 'unique:items'
]);它会像我的数据量那样多地查询DB吗?(例如,10000次?)我只是反对代码性能太昂贵了
发布于 2018-08-23 16:15:24
我的解决办法是
--
$rules = array("column 1" => "unique:KEY_NAME|required");
$validator = Validator::make($request->all(), $rules);--
$data = array(
array('k1'=> 'v1', 'k2'=> 'v2'), all data
);Eloquent::insert();并将数据传递到这里。不要在数据库上查询。只需对最终数据和请求数据进行数组差异即可。另外,再添加一列,说明是否是重复的。所以这会节省一段美好时光。
https://stackoverflow.com/questions/51989792
复制相似问题