Basic sql будет "вставкой в оператор выбора" . Чтобы сделать его короче, я назову ваши 20 баз данных, таких как DB1, DB2, .. DB20, и вашу «конечную» базу данных DBFinal.
Ленивое решение потребовало бы получения имен полей из главной схемы - лучше перечислить поля (при условии, что вы можете автоматически генерировать операторы sql или использовать любые из ваших приложений или диаграмм ER)
Логика:
1) создать DBFinal, отключить автоинкремент для первичных ключей (чтобы вы могли вставлять значения первичных ключей из DB1, DB2, ...
2) создать выбор, который выбирает все строки и столбцы для каждой таблицы. как:
SELECT key, atrb1, atrb2 FROM table1
3) с помощью команды text-copy paste собрать оператор "insert into select" примерно так:
INSERT into DBFinal.user.table1 (key, atrb1, atrb2) SELECT key, atrb1, atrb2 FROM table1
4)
Если у вас есть одинаковые значения ключей в разных базах данных (для разных значений), вам нужно изменить все значения первичного - внешнего ключа, чтобы в целевой базе данных не было дубликатов. Я рекомендую добавить значение (количество строк + 1 в DBFinal).
Вставить в таблицу1 (ключ, atrb1, atrb2) в DBFinal
Клавиша SELECT + 9001, atrb1, atrb2 ИЗ таблицы1