Kopieren Sie Tabellenstrukturen, ohne Daten in MySQL zu kopieren

Mehvish Ashiq 20 Juni 2023
  1. Kopieren Sie Tabellenstrukturen, ohne Daten in MySQL zu kopieren
  2. Verwenden Sie CREATE TABLE ... LIKE, um die Tabellenstruktur in MySQL zu kopieren
Kopieren Sie Tabellenstrukturen, ohne Daten in MySQL zu kopieren

Heute werden wir sehen, wie man Tabellenstrukturen kopiert, ohne Daten in MySQL zu kopieren. Wir werden die Anweisung CREATE TABLE ... LIKE verwenden, um nur die Tabellenstruktur zu kopieren.

Kopieren Sie Tabellenstrukturen, ohne Daten in MySQL zu kopieren

Um es im Detail zu lernen, erstellen wir eine Tabelle mit dem Namen users, die sich in der test-Datenbank befindet und eine ID, USERNAME und EMAIL als Attribute hat.

Erstellen Sie eine Tabelle (Benutzer-Tabelle):

#create a table named 'users' in the 'test' database
CREATE TABLE `test`.`users` (
  `ID` INT NOT NULL AUTO_INCREMENT,
  `USERNAME` VARCHAR(45) NOT NULL,
  `EMAIL` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`ID`));

Als nächstes fügen wir einen Datensatz ein, um zu unterscheiden, dass nur die Struktur der Tabelle in neue Tabellen kopiert wird, nicht die Daten.

INSERT INTO `test`.`users` (USERNAME, EMAIL) VALUES ('mehvish', 'delfstack@example.com');

Verwenden Sie CREATE TABLE ... LIKE, um die Tabellenstruktur in MySQL zu kopieren

Wir können die Tabellenstruktur, auch Tabellendefinition genannt, kopieren, indem wir die unten angegebene Anweisung CREATE TABLE ... LIKE ausführen.

# Syntax: CREATE TABLE new_table LIKE original_table;
CREATE TABLE new_user_one LIKE test.users;

Die oben angegebene Abfrage macht die Struktur der Tabelle new_user_one genau wie die Tabelle users.

Es kopiert alle Spaltennamen, Datentypen, Standardwerte und alles außer dem Inhalt der Tabelle. Die Tabellendaten werden nicht kopiert.

Wir können die Spaltennamen der neuen Tabelle, ihren Datentyp usw. erneut überprüfen, indem wir die folgende Abfrage verwenden.

SHOW CREATE TABLE test.new_user_one;

Wenn Sie eine Situation haben, in der Sie die Daten haben, können Sie dies auf zwei Arten tun. Kopieren Sie die Daten entweder beim Kopieren der Tabellenstruktur oder fügen Sie sie nach dem Kopieren ein; beide sind unten angegeben.

Daten nach dem Kopieren der Tabellenstruktur kopieren:

# Syntax: INSERT INTO new_table SELECT * FROM original_table;
INSERT INTO new_user_one SELECT * FROM test.users;

Daten kopieren beim Kopieren der Tabellenstruktur:

# Syntax: CREATE TABLE new_table AS SELECT * FROM original_table;
CREATE TABLE new_user_two AS SELECT * FROM test.users;

Zweitens können wir den Inhalt der Tabelle kopieren oder klonen, indem wir die Anweisung CREATE TABLE ... AS SELECT ausführen. Das Kopieren von Daten kann bei großen Tabellen einige Zeit in Anspruch nehmen.

Denken Sie daran, dass die neue Tabelle (hier new_user_two) nur die grundlegenden Spaltendefinitionen, Standardwerte und null-Einstellungen kopiert. Es erbt niemals die Definitionen von AUTO_INCREMENT und INDEXES.

Sie können dies mit der folgenden Abfrage bestätigen.

SHOW CREATE TABLE test.new_user_two;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Table