Natürlich können Sie das.
Eine Sache sollte jedoch beachtet werden: Die INSERT INTO SELECT
Anweisung kopiert Daten aus einer Tabelle und fügt sie in eine andere Tabelle ein UND erfordert dass die Datentypen in den Quell- und Zieltabellen übereinstimmen. Wenn die Datentypen der gegebenen Tabellenspalten nicht übereinstimmen (z.B. bei dem Versuch, ein VARCHAR
en INT
, oder TINYINT
in INT
) wirft der MySQL-Server eine SQL Error (1366)
.
Seien Sie also vorsichtig.
Hier ist die Syntax des Befehls:
INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM table1
WHERE condition;
Nebenbemerkung: Es gibt eine Möglichkeit, das Problem des Einfügens verschiedener Spaltentypen zu umgehen, indem man Gießen in Ihrem SELECT
zum Beispiel:
SELECT CAST('qwerty' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;
Diese Umwandlung ( CAST()
ist ein Synonym für CONVERT()
) ist sehr nützlich, wenn Ihre Tabellen unterschiedliche Zeichensätze für dieselbe Tabellenspalte haben (was bei unsachgemäßer Handhabung zu Datenverlust führen kann).