更新数据库中的集合

在您(通过删除、更新或插入元素)更改 SPL 例程中集合变量的内容之后,您必须以新的集合更新数据库。

要更新数据库中的集合,请添加一个设置表中的集合列的 UPDATE 语句,设置为更新了的集合变量的内容。例如,下图中的 UPDATE 语句展示如何更新 polygons 表,来将 definition 列设置为存储在集合变量 vertexes 中的新集合。

图: 更新数据库中的集合。

CREATE PROCEDURE shapes()
            
            DEFINE vertexes SET(point NOT NULL);
            DEFINE pnt point;
            
            SELECT definition INTO vertexes FROM polygons
            WHERE id = 207;
            
            FOREACH cursor1 FOR
            SELECT * INTO pnt FROM TABLE(vertexes)
            IF pnt = '(3,4)' THEN
            -- calls the equals function that
            -- compares two values of point type
            DELETE FROM TABLE(vertexes) 
            WHERE CURRENT OF cursor1;
            EXIT FOREACH;
            ELSE
            CONTINUE FOREACH;
            END IF;
            END FOREACH
            
            UPDATE polygons SET definition = vertexes
            WHERE id = 207;
            
            END PROCEDURE;

现在,shapes() 例程完成。在您运行 shapes() 之后,更新存储在其 ID 列为 207 的行中的集合,以便于它包含三个值,而不是四个。

您可使用 shapes() 例程作为框架,来编写操纵集合的其他 SPL 例程。

出现在存储在 polygons 表的 207definition 列中的集合的元素罗列如下:
'(3,1)'
          '(8,1)'
          '(8,4)'