Нет. MySQL не поддерживает CREATE DOMAIN
или CREATE TYPE
, как, например, PostgreSQL .
Вам, вероятно, придется снова ввести все имена. Вы можете смягчить работу, необходимую для этого, с помощью сценариев копирования и вставки или сценариев SQL.
Вы также можете использовать таблицы INFORMATION_SCHEMA
, чтобы получить текст определения ENUM, а затем интерполировать его в новый оператор CREATE TABLE
.
Вы также можете творчески использовать CREATE TABLE AS
для копирования определения типа. Вот демонстрация:
CREATE TABLE foo ( f ENUM('abc', 'xyz') );
CREATE TABLE bar AS SELECT f AS b FROM foo;
SHOW CREATE TABLE bar;
Выходы:
CREATE TABLE `bar` (
`b` enum('abc','xyz') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Наконец, я предлагаю, чтобы в вашем ENUM было много значений (что, я полагаю, верно, поскольку вы ищете решение, чтобы не вводить их), вам, вероятно, следует использовать справочную таблицу вместо ENUM. тип данных.