在MySQL中创建ENUM变量类型

我在MySQL中使用ENUM数据类型,想重用它,但不重新输入值。MySQL中是否有等效于C,C ++定义类型的方法?

我要执行以下操作:

DEFINE ETYPE ENUM('a','b','c','d');

CREATE TABLE Table_1 (item1 ETYPE, item2 ETYPE);

这可能吗?

谢谢

回答:

号MySQL不支持CREATE DOMAINCREATE

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数据类型。

以上是 在MySQL中创建ENUM变量类型 的全部内容, 来源链接: utcz.com/qa/423789.html

回到顶部