MySQL

2009-09-22 20 views
20

'da ENUM değişken türü oluşturma MySQL'te bir ENUM veri türü kullanıyorum ve yeniden kullanmak istiyorum, ancak değerler arasında yeniden yazmamak istiyorum. MySQL'de C, C++ türlerini tanımlamanın bir yolu var mı?MySQL

ben aşağıdakileri yapmak istiyorum:

DEFINE ETYPE ENUM('a','b','c','d'); 
CREATE TABLE Table_1 (item1 ETYPE, item2 ETYPE); 

bu mümkün mü?

cevap

32

sayılı MySQL örneğin CREATE DOMAIN veya CREATE TYPE, PostgreSQL does desteklemediği

teşekkürler.

Muhtemelen tüm isimleri tekrar girmeniz gerekecektir. & kopyala veya SQL komut dosyaları kullanarak bunu yapmak için gereken işleri azaltabilirsiniz.

Ayrıca, ENUM tanımının metnini almak için INFORMATION_SCHEMA tablolarını kullanabilir ve sonra bunu yeni bir CREATE TABLE deyimine dönüştürebilirsiniz.

Ayrıca, tür tanımını kopyalamak için CREATE TABLE AS reklam öğelerini yaratıcı yollarla da kullanabilirsiniz.

CREATE TABLE foo (f ENUM('abc', 'xyz')); 
CREATE TABLE bar AS SELECT f AS b FROM foo; 
SHOW CREATE TABLE bar; 

Çıkışlar: İşte bir gösteri var Nihayet

CREATE TABLE `bar` (
    `b` enum('abc','xyz') default NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 

, ben önermek senin ENUM içinde birçok değerleri (eğer bir çözüm arıyorsanız beri tahmin ediyorum ki doğrudur varsa onları yazmamaktan kaçının), muhtemelen ENUM veri türü yerine bir arama tablosu kullanmalısınız.