У меня довольно сложная структура базы данных с более чем 1 миллионом записей. Я пытаюсь перенести данные из существующего объекта в новый объект.
Структура старой таблицы данных (которую я переношу) выглядит следующим образом:
MAIN / EXISTING TABLE
|-------|-----------|-----------|
| title | text | parent_id |
|-------------------|-----------|
| HELLO | Something | 3001 |
|-------|-----------|-----------|
| HELLO | Hi! | 3002 |
|-------|-----------|-----------|
| TEST | World! | 3001 |
|-------|-----------|-----------|
В ней более 1 миллиона записей.
Новая таблица, в которойЭто место назначения для миграции имеет атрибуты заголовка из существующей таблицы в качестве имен столбцов.
NEW TABLE
|---|-----------|-------|------|-------|
|id | parent_id | HELLO | TEST | OTHER |
|---|-----------|-------|------|-------|
| x | 3001 | NULL | NULL | NULL |
|---|-----------|-------|------|-------|
| y | 3002 | NULL | NULL | NULL |
|---|-----------|-------|------|-------|
| z | 3003 | NULL | NULL | NULL |
|---|-----------|-------|------|-------|
Желаемый результат для новой таблицы на основе существующих данных будет следующим:
DESIRED NEW TABLE
|---|-----------|-----------|--------|-------|
|id | parent_id | HELLO | TEST | OTHER |
|---|-----------|-----------|--------|-------|
| x | 3001 | Something | World! | NULL |
|---|-----------|-----------|--------|-------|
| y | 3002 | Hi! | NULL | NULL |
|---|-----------|-----------|--------|-------|
| z | 3003 | NULL | NULL | NULL |
|---|-----------|-----------|--------|-------|
Результат может быть достигнут программно, как это (псевдокод):
FOREACH row IN `MAIN TABLE`:
UPDATE `NEW TABLE` SET `row.title` = 'row.text'
Но это не жизнеспособное решение, потому что есть так много записей для циклического повторения.
Кто-нибудь знаетвозможно ли решение в MySQL?