Nano Hash - криптовалюты, майнинг, программирование

Как импортировать данные из одной таблицы в другую с помощью базы данных: заполнение? (ларавель 5.3)?

Мой DatabaseSeeder выглядит так:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        Model::unguard();

        $this->call('MasterLookupsTableSeeder')
    }
}

Мой MasterLookupsTableSeeder выглядит так:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class MasterLookupsTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('master_lookups')->insert([
            'id'            =>  '17',           
            'code'          =>  '002',
            'name'          =>  'sample data',
            'information'   =>  NULL,
            'created_at'    =>  date('Y-m-d H:i:s'),
            'updated_at'    =>  date('Y-m-d H:i:s')
        ]);
    }
}

Когда я запускаю php artisan db:seed --class=MasterLookupsTableSeeder, он вставляется в таблицу master_lookups. Он по-прежнему статичен. Я хочу создать динамику, в которой данные вставляются в таблицу master_lookups, взятую из другой таблицы, например таблицы akuns. В таблице akuns есть идентификатор поля, код, имя, code_shopping.

Я хочу так :

код данных из таблицы akuns вставить в код поля в таблице master_lookups

имя данных из таблицы akuns вставить в имя поля в таблице master_lookups

Данные code_shopping из таблицы akuns вставляются в информацию о полях таблицы master_lookups в виде json. тип данных поля информации — json.

Есть ли люди, которые могут мне помочь?


  • Просто взять все элементы из таблицы akuns и выполнить вставку в целевую таблицу в качестве тела закрытия? Akun::all()-›each(function($akun) { $masterLookup = new MasterLookup; $masterLookup-›code = $akun-›code; etc $masterLookup-›save()} В зависимости от количества строк, которые вы есть в вашей таблице, вы можете использовать фрагмент вместо всего, чтобы убедиться, что у вас не закончится память. 27.12.2016

Ответы:


1

Предположим, к вашему столу akun прикреплена модель akun. Мы предполагаем то же самое для master_lookups (MasterLookup).

Вы можете попробовать что-то вроде:

Akun::all()->each(function($akun) { 
    $masterLookup = new MasterLookup; 
    $masterLookup->code = $akun->code;
    $masterLookup->name = $akun->name;
    $masterLookup->save()
}

В зависимости от количества имеющихся у вас строк вы можете использовать метод chunk вместо all, чтобы избежать нехватки памяти при попытке получить все элементы.

27.12.2016
  • кажется, лучше использовать foreach, чем each 28.12.2016
  • Почему? Я думаю, лучше воспользоваться коллекциями Laravel. Я почти уверен, что под капотом они одинаковые. 28.12.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..