20
我在MySQL中使用ENUM數據類型,並且希望重用它,但不重新輸入值。是否有與C,C++中定義MySQL類型的方法等價的方法?在MySQL中創建ENUM變量類型
我想做到以下幾點:
DEFINE ETYPE ENUM('a','b','c','d');
CREATE TABLE Table_1 (item1 ETYPE, item2 ETYPE);
這可能嗎?
由於
我在MySQL中使用ENUM數據類型,並且希望重用它,但不重新輸入值。是否有與C,C++中定義MySQL類型的方法等價的方法?在MySQL中創建ENUM變量類型
我想做到以下幾點:
DEFINE ETYPE ENUM('a','b','c','d');
CREATE TABLE Table_1 (item1 ETYPE, item2 ETYPE);
這可能嗎?
由於
號MySQL不支持CREATE DOMAIN
或CREATE TYPE
,例如,PostgreSQL的does。
您可能需要重新輸入所有名稱。您可以通過使用複製&粘貼或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數據類型。