jay*_*jay 28 mysql variables enums
我在MySQL中使用ENUM数据类型并希望重用它,但不在值中重新输入.是否有相当于在C中定义类型的C,C++方法?
我想做以下事情:
DEFINE ETYPE ENUM('a','b','c','d');
CREATE TABLE Table_1 (item1 ETYPE, item2 ETYPE);
Run Code Online (Sandbox Code Playgroud)
这可能吗?
谢谢
Bil*_*win 46
不,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;
Run Code Online (Sandbox Code Playgroud)
输出:
CREATE TABLE `bar` (
`b` enum('abc','xyz') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
最后,我建议如果你的ENUM里面有很多值(我猜测它是正确的,因为你正在寻找避免键入它们的解决方案),你应该使用查找表而不是ENUM数据类型.