Массовая вставка Laravel для необработанного запроса - PullRequest
0 голосов
/ 13 мая 2018

У меня необработанный запрос:

INSERT INTO employee (fk_country_id, employee_id, fk_city_id, password, role, email, joined_at, resigned_at, created_at, updated_at) VALUES (?, ?, (SELECT id FROM city WHERE city.id = ?), ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE email = VALUES(email), joined_at = VALUES(joined_at), resigned_at = VALUES(resigned_at)

Я выполняю запрос следующим образом:

DB::insert($query, $parameters);

, где значения параметров представлены в виде массива.

Поскольку существует огромное количество строк для операций INSERT и UPDATE, мне нужно оптимизировать запрос, чтобы вставить значения нескольких строк в один запрос.

Как я могу оптимизировать мой запрос с помощью Laravel?

Есть несколько опций, которые позволяют запускать запросы с вложенными массивами, но я не смог заставить их работать с:

DB::insert();

Я хочу избежать использования "(?,?,?), (?,?,?) ...." во время операции INSERT.Как Laravel может помочь в этом, чтобы код выглядел чище и оптимизировалось?

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете оптимизировать свой код с помощью Laravel как:

DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

Вы также можете перейти по этой ссылке.Это может быть полезно для вас.

http://fideloper.com/laravel-raw-queries

Пожалуйста, отметьте его как ответ, если оно соответствует вашему решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...