Tabelle in MySQL erstellen, die mit einer anderen Tabelle übereinstimmt?
84
Ich benutze MySQL. Ich habe eine Tabelle namens EMP, und jetzt muss ich eine weitere Tabelle (EMP_TWO) mit demselben Schema, denselben Spalten und denselben Einschränkungen erstellen. Wie kann ich das machen?
Verwenden Sie LIKE, um eine leere Tabelle basierend auf der Definition einer anderen Tabelle zu erstellen, einschließlich aller in der Originaltabelle definierten Spaltenattribute und Indizes:
CREATE TABLE new_table LIKE original_table; Die Kopie wird mit derselben Version des Tabellenspeicherformats wie die Originaltabelle erstellt. Das SELECT-Privileg ist für die ursprüngliche Tabelle erforderlich.
LIKE funktioniert nur für Basistabellen, nicht für Ansichten.
TABELLE ERSTELLEN ... LIKE behält keine Tabellenoptionen für DATA DIRECTORY oder INDEX DIRECTORY bei, die für die ursprüngliche Tabelle angegeben wurden, oder Fremdschlüsseldefinitionen.
Antworten:
Um eine neue Tabelle basierend auf einer anderen Tabellenstruktur / -beschränkungen zu erstellen, verwenden Sie:
CREATE TABLE new_table LIKE old_table;
Verwenden Sie zum Kopieren die Daten bei Bedarf
INSERT INTO new_table SELECT * FROM old_table;
Erstellen Sie Tabellendokumente
Beachten Sie die Hinweise zur Option LIKE:
quelle
LIKE
in einerCREATE
Anweisung verwenden können.CREATE TABLE new_db.new_table LIKE old_db.old_table
:)Wenn Sie nur Struktur kopieren möchten, verwenden Sie
create table new_tbl like old_tbl;
Wenn Sie sowohl Struktur als auch Daten kopieren möchten, verwenden Sie
create table new_tbl select * from old_tbl;
quelle
Tabelle in MySQL erstellen, die mit einer anderen Tabelle übereinstimmt? Ans:
CREATE TABLE new_table AS SELECT * FROM old_table;
quelle
Warum gehst du nicht so?
CREATE TABLE new_table LIKE Select * from Old_Table;
oder Sie können gehen, indem Sie Daten wie folgt filtern
CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;
Um die gleiche Einschränkung in Ihrer neuen Tabelle zu haben, müssen Sie zuerst ein Schema erstellen und dann Daten für die Schemaerstellung abrufen
CREATE TABLE new_table LIKE Some_other_Table;
quelle
like
undselect *
in einer Anweisung zu verwenden? Ich bekomme einen Fehler. Bitte überprüfen Sie auch diese Antwort stackoverflow.com/questions/10147565/create-table-like-a1-as-a2