Как объединить несколько таблиц в одной базе данных MySQL?

Как собрать разделенную на части MySQL базу данных в единую БД на Windows с использованием OpenServer? В меню, предоставленном MySQL, данные представлены в виде отдельных SQL файлов для каждой таблицы. С учетом сложности импорта каждого файла через phpMyAdmin, как эффективно объединить все файлы в одну базу данных?
  • 1 апреля 2024 г. 19:39
Ответы на вопрос 5
Для объединения нескольких таблиц в одной базе данных MySQL вы можете использовать операторы SQL для создания новой таблицы с помощью объединения данных из разных таблиц.

Например, если у вас есть две таблицы "table1" и "table2" и вы хотите объединить их в одну таблицу "combined_table", вы можете использовать следующий SQL запрос:

```sql
CREATE TABLE combined_table AS
SELECT * FROM table1
UNION ALL
SELECT * FROM table2;
```

Этот запрос создаст новую таблицу "combined_table" и скопирует все данные из "table1" и "table2" в эту новую таблицу.

Чтобы объединить отдельные SQL файлы в единую базу данных на Windows с помощью OpenServer, вы можете воспользоваться утилитой MySQL Command Line Tool (mysql.exe).

1. Откройте командную строку (cmd) и перейдите в папку, где находятся ваши SQL файлы.
2. Запустите mysql.exe, указав параметры для подключения к вашей базе данных. Например:

```
mysql -u username -p -h host databasename
```

3. Затем выполните команду SOURCE для импорта содержимого SQL файла в вашу базу данных. Например:

```
SOURCE filename.sql
```

Повторите эту команду для каждого SQL файла, который вы хотите объединить в единую базу данных.

Таким образом, вы сможете эффективно объединить все файлы в одну базу данных с помощью MySQL Command Line Tool на Windows с использованием OpenServer.
Эх, молодёжь... 
copy *.sql fulldump.sql
Ещё во времена MS-DOS можно было
Каждая табличка - это отдельный файл SQL.

Это не таблица, это "чертеж" таблицы.
Соберете все файлики в несколько больших с помощью какого-нибудь файлового менеджера, то можете phpMyAdmin скармливать чертеж на постройку сразу нескольких объектов СУБД, а не только одной таблички.
for i in `ls *.sql`; do mysql < $i; done 

Что то типа такого? Задача же простейшая - импортировать каких то 300 файлов...
type X:\sql_files_folder\*.sql | Z:\mysql_bin_folder\mysql -D database_name -u account_name -p

И молись, чтобы в файлах не было синтаксических ошибок...
Похожие вопросы