MySQL 分区对 null
的处理
MySQL 中的分区不会禁止 null
作为分区表达式的值,无论列值还是用户提供的表达式的值,都允许 null
用作必须产生整数的表达式的值。MySQL 中的分区将 null
视为小于任何非 null
值。
范围分区中如何处理 null
要将一行数据插入分区中,如果用于确定范围分区的列值为 null
,那么该行将插入最低分区中。
列表分区中如何处理 null
当且仅当定义的分区中存在分区其 values in
后跟的值列表中存在 null
值时,才允许 null
值插入该分区。
mysql
create table ts2 (
c1 int,
c2 varchar(20)
)
partition by list(c1) (
partition p0 values in (0, 3, 6),
partition p1 values in (1, 4, 7),
partition p2 values in (2, 5, 8),
partition p3 values in (null)
);
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
哈希分区和健分区中如何处理 null
在哈希分区和键分区的表中,任何产生 null
值的分区表达式的返回值都为 0。