@Div100

Как скопировать строки из одной таблицы в другую?

Как лучше сделать такую перезапись из одной таблицы в другую?

Есть 2 таблицы:
Wallets:
...| user_id | type | money | ... |
Stats:
..| user_id | currency | money |


Может, как-нибудь можно получить и сменить коллекцию?
$wallets = Wallets::all();
// здесь $wallets  нужно сохранить в Stats


Этот скрипт будет выполняться раз в день cron/schedule task
Как это лучше сделать, чтобы не в цикле каждый row сохранять?
  • Вопрос задан
  • 807 просмотров
Пригласить эксперта
Ответы на вопрос 2
DieZz
@DieZz
DB::raw("INSERT INTO Wallets (user_id, type, money) 
    SELECT user_id, currency, money FROM Stats")
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Очевидная проблема заключается в том, что у вас колонки в таблицах не совпадают.

А вообще, вашу задачу можно решить одним запросом
INSERT INTO table1 (column1) SELECT col1 FROM table2


Кроме этого, можно воспользоваться Query Builder'ом:
DB::table('users')->insert([
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы