В этой статье будет рассмотрено, как скопировать таблицу из базы данных в другую таблицу с помощью предложений CREATE и SELECT в MySQL.
Первый случай, когда нам нужно скопировать таблицу, — это копирование определенных данных из существующей таблицы в новую. Например, в образце базы данных maxel мы можем скопировать конкретную информацию из таблицы film в новую таблицу с именем film_revised.
Рассмотрим приведенный ниже запрос для выполнения такой операции:
CREATE DATABASE copy_tb; use copy_tb; CREATE table film_revised SELECT title, release_year, length, rating FROM maxel.film;
После выполнения вышеуказанного запроса мы можем просмотреть данные, хранящиеся в таблице, с помощью оператора выбора MySQL, как показано в выходных данных ниже:
mysql> SELECT * FROM film_revised LIMIT 10; +------------------+--------------+--------+--------+ | title | release_year | length | rating | +------------------+--------------+--------+--------+ | ACADEMY DINOSAUR | 2006 | 86 | PG | | ACE GOLDFINGER | 2006 | 48 | G | | ADAPTATION HOLES | 2006 | 50 | NC-17 | | AFFAIR PREJUDICE | 2006 | 117 | G | | AFRICAN EGG | 2006 | 130 | G | | AGENT TRUMAN | 2006 | 169 | PG | | AIRPLANE SIERRA | 2006 | 62 | PG-13 | | AIRPORT POLLOCK | 2006 | 54 | R | | ALABAMA DEVIL | 2006 | 114 | PG-13 | | ALADDIN CALENDAR | 2006 | 63 | NC-17 | +------------------+--------------+--------+--------+ 10 rows in set (0.00 sec)
Как видите, мы можем создавать новые таблицы с выбранной информацией из существующих таблиц, не изменяя данные в исходной базе данных.
Чтобы скопировать таблицу + данные и все связанные объекты, мы используем оператор LIKE, за которым следует оператор INSERT, как показано в запросе ниже:
CREATE TABLE film_copy LIKE maxel.film; INSERT film_copy SELECT * FROM maxel.film;
Вышеупомянутый запрос скопирует все из исходной таблицы в новую, включая индексы, первичные ключи, ограничения и другие объекты, связанные с исходной таблицей.
Если вам нужно скопировать таблицу из разных баз данных, вы можете ссылаться на базу данных, используя запись с точкой (.).
Например, начните с создания новой базы данных как:
CREATE DATABASE IF NOT EXISTS multi_db;
Затем используйте синтаксис, показанный ранее, чтобы скопировать таблицу из старой базы данных в новую. см. запрос ниже:
CREATE TABLE multi_db.new_tb LIKE maxel.film; INSERT multi_db.new_tb SELECT * FROM maxel.film;
Это скопирует таблицу film из базы данных maxel в новую и отобразит результат, как показано ниже:
Query OK, 1000 rows affected (0.03 sec) Records: 1000 Duplicates: 0 Warnings: 0
Вы можете использовать оператор SELECT, чтобы убедиться, что данные были успешно скопированы.
В этой краткой статье было рассмотрено, как использовать операторы MySQL CREATE TABLE и SELECT для копирования определенных столбцов из таблицы в новую таблицу.
Мы также рассмотрели, как скопировать все данные, включая объекты, связанные с исходной таблицей, в новую таблицу.
Наконец, мы обсудили, как копировать таблицы из одной базы данных в другую.
Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!
Спасибо! Ваша заявка принята
Спасибо! Ваша заявка принята