Manchmal müssen Sie möglicherweise Daten von einer Tabelle in eine andere in MySQL kopieren oder Tabellen in MySQL kopieren. So duplizieren Sie eine Tabelle in MySQL. Sie können damit Tabellen in MySQL klonen oder Tabellenstrukturen kopieren oder sogar Tabellen von einer Datenbank in eine andere kopieren.
Wie man Tabellen in MySQL dupliziert
Hier sind die Schritte zum Duplizieren einer Tabelle in MySQL. Es gibt verschiedene Anwendungsfälle, um Daten von einer Tabelle in eine andere zu kopieren. Wir werden uns jeden von ihnen im Detail ansehen.
MySQL Daten von einer Tabelle in eine neue Tabelle kopieren
Wenn Sie eine Tabelle in MySQL in eine neue Tabelle duplizieren müssen, müssen Sie die CREATE TABLE- und SELECT-Anweisung wie unten gezeigt verwenden
CREATE TABLE new_table SELECT column, column2, column3 FROM existing_table;
Angenommen, Sie haben eine vorhandene Tabelle Produkte
mysql> select * from products; +------------+--------------------+-------+ | product_id | product_name | price | +------------+--------------------+-------+ | 1 | iPhone 11 | 400 | | 2 | Samsung Galaxy A50 | 250 | +------------+--------------------+-------+
Hier ist die SQL-Abfrage zum Kopieren von Produkten Tabelle in eine neue Tabelle namens new_products
mysql> create table new_products select * from products; mysql> select * from new_products; +------------+--------------------+-------+ | product_id | product_name | price | +------------+--------------------+-------+ | 1 | iPhone 11 | 400 | | 2 | Samsung Galaxy A50 | 250 | +------------+--------------------+-------+
Es ist wichtig zu beachten, dass die neue Tabelle nur erstellt wird, wenn sie nicht existiert. Andernfalls erhalten Sie einen Fehler. Um Fehler beim Duplizieren von Tabellen in MySQL zu vermeiden, können Sie IF NOT EXIST in der CREATE TABLE-Anweisung verwenden, wie unten gezeigt.
mysql> create table if not exist new_products select * from products;
Bonus-Lesevorgang:Gespeicherte MySQL-Prozedur mit Parametern
Um nur Teildaten von einer Tabelle in eine neue Tabelle zu kopieren, können Sie die WHERE-Bedingung in Ihrer SELECT-Anweisung wie gezeigt verwenden
CREATE TABLE new_table SELECT column1, column2, column3 FROM existing_table WHERE conditions;
Hier ist die SQL-Abfrage zum Kopieren von Teildaten aus Produkten Tabelle in eine neue Tabelle namens new_products2
mysql> create table new_products2 select * from products where product_id=1; mysql> select * from new_products2; +------------+--------------+-------+ | product_id | product_name | price | +------------+--------------+-------+ | 1 | iPhone 11 | 400 | +------------+--------------+-------+
Bonuslektüre:So erstellen Sie einen zusammengesetzten Primärschlüssel in MySQL
MySQL Tabellenstruktur in neue Tabelle kopieren
Die obigen Abfragen kopieren nur Tabellen und Daten. Sie kopieren keine Tabellenobjekte wie Primärschlüssel, Indizes, Einschränkungen, Trigger. Um die Tabellenstruktur und Daten zu kopieren, müssen Sie die CREATE TABLE-Anweisung mit dem Schlüsselwort LIKE verwenden, wie unten gezeigt
CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;
Angenommen, Sie haben eine Bestellung Tabelle mit Primärschlüssel
mysql> describe orders; +--------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(255) | NO | | NULL | | | order_date | date | YES | | NULL | | | price | int(11) | NO | | NULL | | | description | text | YES | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | +--------------+--------------+------+-----+-------------------+----------------+
und Sie möchten die Struktur von Aufträgen kopieren zu new_orders Tisch. Hier ist die SQL-Abfrage zum Kopieren der Tabellenstruktur in eine neue Tabelle.
mysql> create table new_orders like orders; mysql> describe new_orders; +--------------+--------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+-------------------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(255) | NO | | NULL | | | order_date | date | YES | | NULL | | | price | int(11) | NO | | NULL | | | description | text | YES | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | +--------------+--------------+------+-----+-------------------+----------------+
Bonus-Lesetext:Wie man Tabellen in MySQL abschneidet
MySQL kopiert Daten von einer Tabelle in eine bestehende Tabelle
Die obige Anweisung erstellt eine neue Tabelle mit der Struktur der alten Tabelle. Dann müssen Sie die INSERT-Anweisung verwenden, um Daten aus der alten Tabelle in die neue Tabelle zu kopieren.
INSERT new_table SELECT * FROM existing_table;
Hier ist die SQL-Abfrage zum Kopieren von Daten aus Bestellungen in die bestehende Tabelle new_orders
mysql> insert new_orders select * from orders; mysql> select * from orders; +----+--------------+------------+-------+-------------+---------------------+ | id | product_name | order_date | price | description | created_at | +----+--------------+------------+-------+-------------+---------------------+ | 1 | A | 2020-07-01 | 150 | New product | 2020-06-01 00:00:00 | | 2 | B | 2020-07-01 | 235 | Old product | 2020-06-15 00:00:00 | +----+--------------+------------+-------+-------------+---------------------+
Bonuslektüre:MySQL DROP VIEW
MySQL Tabelle von einer Datenbank in eine andere kopieren
Wenn Sie eine Tabelle in MySQL von einer Datenbank in eine andere duplizieren möchten, fügen Sie einfach die Datenbanknamen in Ihre Tabellennamen ein, wie unten in Fettdruck gezeigt
CREATE TABLE destination_db.new_table LIKE source_db.existing_table; INSERT destination_db.new_table SELECT * FROM source_db.existing_table;
Die erste Anweisung dupliziert die Tabellenstruktur in MySQL von der Quelldatenbank (z. B. source_db) in eine andere (z. B. destination_db). Die zweite Anweisung kopiert Daten von einer Tabelle in eine andere.
Ersetzen Sie source_db und destination_db in obigen Abfragen jeweils mit Quell- und Zieldatenbank.
Hoffentlich hilft Ihnen dieser Artikel beim Duplizieren von Tabellen in MySQL. Bitte seien Sie vorsichtig, wenn Sie Tabellen in MySQL mit einer großen Anzahl von Datensätzen duplizieren, da dies viel Zeit und Ressourcen in Anspruch nehmen kann.
Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!