Перенос базы данных в другую базу с другой структурой

Это нужно мне, так как такие переносы делаю не так часто и потому забываю синтаксис и может кому то ещё пригодится

И так. Имеется база с 1 таблице, в которой много дублирующихся данных, например фамилии, места, какие то реквизиты. База работает, имеет много данных, но вывести статистику сильно накладно и вероятность ввода неверных но дублирующихся данных равна далеко не нолю

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

insert IGNORE into archiv.authors (title) (select autor from foto_catalog.foto group by autor);
insert IGNORE into archiv.authors (title) (select autor from foto_catalog1.foto group by autor);
insert IGNORE into archiv.sections (title) (select rubric from foto_catalog.foto group by rubric);
insert IGNORE into archiv.sections (title) (select rubric from foto_catalog1.foto group by rubric);
insert IGNORE into archiv.places (title) (select place from foto_catalog.foto group by place);
insert IGNORE into archiv.places (title) (select place from foto_catalog1.foto group by place);

Тут происходит вставка уникальных значений полей autor, rubric, place из 2 баз данных в базу с новой структурой, причём опция IGNORE позволяет избежать дублей и продолжить вставку

insert into archiv.fotos 
  (date,fotodate,title,cipher,filename,id_author,id_sections,id_place)
  (select date,datefoto,name,cipher,concat(namefoto,".jpg"),(select id from archiv.authors where title=autor),(select id from archiv.sections where title=rubric),(select id from archiv.places where title=place) from foto_catalog.foto);
insert into archiv.fotos
  (date,fotodate,title,cipher,filename,id_author,id_sections,id_place)   
  (select date,datefoto,name,cipher,concat(namefoto,".jpg"),(select id from archiv.authors where title=autor),(select id from archiv.sections where title=rubric),(select id from archiv.places where title=place) from foto_catalog1.foto);

А вот так перетаскиваю и связываю данные из старых фотокаталогов в новый, наверно можно было обойтись созданием представления но мне так проще

похожие страницы

  1. Автоматическое сохранение всех баз данных mysql
  2. Государственные базы данных
  3. Анализ базы данных Архивный ФОНД 3 (три)
  4. Sqlite3 работа с несколькими базами
  5. Пакетная обработка DBF Foxpro файлов