Ответ 1
Нет. 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 тип данных.