Nr MySQL nicht CREATE DOMAIN
oder CREATE TYPE
wie zum Beispiel PostgreSQL does unterstützt.
Sie müssen wahrscheinlich alle Namen erneut eingeben. Sie können die dafür erforderliche Arbeit verringern, indem Sie die Kopie & einfügen oder SQL-Skripts verwenden.
Sie können auch die Tabellen INFORMATION_SCHEMA
verwenden, um den Text der ENUM-Definition abzurufen, und diesen dann in eine neue CREATE TABLE
-Anweisung interpolieren.
Sie können auch CREATE TABLE AS
auf kreative Weise verwenden, um eine Typdefinition zu kopieren. Hier ist eine Demonstration:
CREATE TABLE foo (f ENUM('abc', 'xyz'));
CREATE TABLE bar AS SELECT f AS b FROM foo;
SHOW CREATE TABLE bar;
Ausgänge:
CREATE TABLE `bar` (
`b` enum('abc','xyz') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Schließlich schlage ich vor, dass, wenn Ihr ENUM hat viele Werte in es (was ich vermute, ich ist wahr, da Sie suchen nach einer Lösung vermeiden Sie sie zu tippen), Sie sollten wahrscheinlich eine Nachschlagetabelle anstelle des ENUM-Datentyps verwenden.