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