列挙の使用
列挙型はENUM()
文を使用して宣言されます。この文を使用する場合は、受入れ可能な列挙値を宣言する必要があります。
主キーがUIDで2番目のフィールドに列挙を持つシンプルな2つのフィールドの表を定義するには、次のDDL文を使用します。
CREATE TABLE myTable (
uid INTEGER,
myEnum ENUM (Apple,Pears,Oranges),
PRIMARY KEY (uid)
)
列挙フィールドでは、DEFAULT
およびNOT NULL
制約がサポートされています。詳細は、「DEFAULT」を参照してください。
列挙値は文字列として処理されます。
列挙に書き込むには、次のようにします。
row_d = {'uid' : 0,
'myEnum' : 'Pears'
}
try:
store.put("myTable", row_d)
logging.debug("Store write succeeded.")
except IllegalArgumentException, iae:
logging.error("Could not write table.")
logging.error(iae.message)
sys.exit(-1)
列挙を読み取るには、次のようにします。
try:
primary_key_d = {"uid" : 0}
row = store.get("myTable", primary_key_d)
if not row:
logging.debug("Row retrieval failed")
else:
logging.debug("Row retrieval succeeded.")
myEnum = row['myEnum']
print "myEnum: %s" % myEnum
except IllegalArgumentException, iae:
logging.error("Row retrieval failed.")
logging.error(iae.message)
return
except KeyError, ke:
logging.error("Row display failed. Bad key: %s" % ke.message)