OceanBaseデータベースは集合型 SET をサポートしています。SET は文字列オブジェクトで、0個以上の値を持つことができ、各値はリスト 'value1', 'value2', ... のいずれかからなければなりません。
SET は可変長型であり、UTF8MB4 文字セットをサポートしています。
SET の構文は以下のとおりです:
SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]
SET 値は内部では整数として表現されます。SET 列は最大64個の要素を定義でき、各要素の長さは最大255文字です。複数の集合要素で構成される SET 列の値は、カンマ(,)で区切られます。
例えば、SET('a', 'b') NOT NULL の列には、以下の値を設定できます:
' '
'a'
'b'
'a,b'
CHARACTER SET は文字セットを指定するために使用されます。必要に応じて、COLLATE 属性やその他の属性を使用して、文字セットの照合順序を指定できます。
SET 値は数値的に格納され、値の低い位置が最初の集合要素に対応します。SET 値は数値順にソートされます。NULL 値は非 NULL 値よりも前に配置されます。厳密なSQLモードが有効な場合、重複する値を定義すると警告またはエラーが発生します。テーブル作成時、テーブル定義内の SET メンバー値の末尾の空白は自動的に削除されます。