集合中的空值

集合不能包含 NULL 元素。然而,当集合是行类型时,可以对集合包含的行类型的任何或所有字段插入 NULL 值。假定创建下面这个带有集合列的表:
CREATE TABLE tab1 (col1 INT,
                col2 SET(ROW(a INT, b INT) NOT NULL));
由于只有行类型的组成字段指定了 NULL 值,所以允许下列语句:
INSERT INTO tab1 VALUES ( 25,"SET{ROW(NULL, NULL)}");

INSERT INTO tab1 VALUES ( 35,"SET{ROW(4, NULL)}");

INSERT INTO tab1 VALUES ( 45,"SET{ROW(14, NULL), ROW(NULL,5)}");

UPDATE tab1 SET col2 = "SET{ROW(NULL, NULL)}" WHERE col1 = 45;
然而,由于集合元素指定了 NULL 值,所以下列每个语句都返回一条错误消息:
INSERT INTO tab1 VALUES ( 45, "SET{NULL)}");

UPDATE tab1 SET col2 = "SET{NULL}" WHERE col1 = 55;