У меня есть сценарий загрузки для вставки файлов JSON в базу данных, этот скрипт выполняется почти в 50 раз с использованием AJAX и индикатора загрузки. Я хочу использовать приведенную ниже структуру вставки, чтобы сделать это как можно быстрее, чтобы избежать сотен отдельных операторов вставки < /p>
INSERT INTO TABLE (COLUMN) VALUES ('value1'),('value2'),('value3')
< /code>
Чтобы генерировать SQL в Laravel Как пример здесь выше, я использую этот код: < /p>
foreach ($album_data['data'] as $album) {
if (isset($album['name'])) {
$array['id'] = $album['id'];
$array['name'] = $album['name'];
$array['type'] = $album['type'];
$arr_albums[] = $array;
unset($array);
}
}
DB::table('ALBUM')->insert($arr_albums);
< /code>
Это работает большую часть времени, но иногда возникает ошибка в отношении дублирующих клавиш, потому что этот сценарий запускается несколько раз одновременно для других входов JSON, где появляются одни и те же альбомы, даже если я впервые проверяю уже существующие идентификаторы. Json file < /li>
Используйте эти идентификаторы в выборе, чтобы проверить, которые уже находятся в базе данных < /li>
Создайте оператор вставки для тех идентификаторов, которые не находятся в базе данных < /li>
< /ol>
< /blockquote>
. процесса) в то же время, и запуск (номер 3 процесса) вставьте одновременно.$query = DB::table('ALBUM')->insert($arr_albums)->toSql();
$query .= " ON DUPLICATE...";
< /code>
Что вызывает эту ошибку: < /p>
вызов функции члена tosql () на логическом < /p>
< /blockquote>
Я думаю, функция «tosql ()» невозможна "insert ()"?>
Подробнее здесь: https://stackoverflow.com/questions/371 ... r-on-tosql
Laravel 5.2 MySQL Объемная вставка с использованием нескольких запросов AJAX, ошибка на toSQL () ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение