Сначала обязательно сделайте резервную копию ваших существующих данных!
Процесс отличается, если вы собираетесь использовать исходное поле id или сгенерировать новое.
Предполагая, что вы собираетесь использовать оригинал, убедитесь, что у вас есть возможность вставлять поля идентификаторов в таблицу перед началом работы (эквивалент SQL Server, если вы автоматически генерируете число: Установить идентификацию Вставить, не уверен, что такое mysql будет использовать). Записать вставку из старой таблицы в родительскую таблицу:
insert newparenttable (idfield, field1, field2)
select idfield, field1, field2 from old parent table
затем напишите аналогичные вставки для всех дочерних таблиц в зависимости от того, какие поля вам нужны. Например, если у вас несколько телефонных номеров в разных полях, в качестве выбора вставки вы будете использовать объединение всех.
Insert newphone (phonenumber, userid, phonetype)
select home_phone, id, 100 from oldparenttable
union all
select work_phone, id, 101 from oldparenttable
Union all
select cell_phone, id, 102 from oldparenttable
Если вы собираетесь создать новый идентификатор, то создайте таблицу с полем для старого идентификатора. Вы можете оставить это в конце (хотя я бы оставил это на шесть месяцев). Затем вы можете присоединиться из новой родительской таблицы к старой родительской таблице на oldid и получить новый идентификатор из новой родительской таблицы, когда вы вставляете в дочерние таблицы. Что-то вроде:
Insert newphone (phonenumber, userid, phonetype)
select home_phone, n.id, 100 from oldparenttable o
join newparenttable n on n.oldid = o.id
union all
select work_phone, n.id, 101 fromoldparenttable o
join newparenttable n on n.oldid = o.id
Union all
select cell_phone, n.id, 102 from oldparenttable o
join newparenttable n on n.oldid = o.id