Это нужно мне, так как такие переносы делаю не так часто и потому забываю синтаксис и может кому то ещё пригодится
И так. Имеется база с 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);
А вот так перетаскиваю и связываю данные из старых фотокаталогов в новый, наверно можно было обойтись созданием представления но мне так проще
Комментариев 0