nr MySQL nie obsługuje CREATE DOMAIN
lub CREATE TYPE
jak, na przykład, PostgreSQL does.
Prawdopodobnie będziesz musiał wprowadzić wszystkie nazwiska ponownie. Możesz zmniejszyć nakład pracy, aby to zrobić, używając wklejania lub skryptów SQL.
Można również użyć tabel INFORMATION_SCHEMA
, aby uzyskać tekst definicji ENUM, a następnie dokonać interpolacji w nowym oświadczeniu CREATE TABLE
.
Można również użyć CREATE TABLE AS
w kreatywny sposób, aby skopiować definicję typu. Oto demonstracji:
CREATE TABLE foo (f ENUM('abc', 'xyz'));
CREATE TABLE bar AS SELECT f AS b FROM foo;
SHOW CREATE TABLE bar;
Wyjścia:
CREATE TABLE `bar` (
`b` enum('abc','xyz') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Wreszcie uważam, że jeśli Twój ENUM ma wiele wartości w nim (który Zgaduję jest prawdą, ponieważ szukasz rozwiązania unikaj ich wpisywania), prawdopodobnie powinieneś używać tabeli odnośników zamiast typu danych ENUM.