MultiSurfaceZ and MultiSurfaceM Data Types
A MultiSurfaceZ can contain between 1 to N surfaces of the types PolygonZ or CurvePolygonZ with any combination of these types.
A MultiSurfaceM can contain between 1 to N surfaces of the types PolygonM or CurvePolygonM with any combination of these types.
Examples:
Without specifying SRID:
CREATE TABLE surfaces1 (name VARCHAR(30), msurf MULTISURFACEZ);
CREATE TABLE surfaces2 (name VARCHAR(30), msurf MULTISURFACEM);
With specifying SRID:
CREATE TABLE surfaces1 (name VARCHAR(30), msurf MULTISURFACEZ SRID 4326);
CREATE TABLE surfaces2 (name VARCHAR(30), msurf MULTISURFACEM SRID 4326);
Show a collection of curves that may or may not be related:
CREATE TABLE surfaces1 (id INT, msurf MULTISURFACEZ);
CREATE TABLE surfaces2 (id INT, msurf MULTISURFACEM);
INSERT INTO surfaces1 (id, msurf) VALUES (1, GeomFromText('MULTISURFACEZ(((0 0 0, 0 4 0, 4 4 0, 4 0 0, 0 0 0)), CURVEPOLYGONZ(COMPOUNDCURVEZ((0 0 1, 2 0 1), CIRCULARSTRINGZ(2 0 2, 2 1 2, 4 0 2))))'));
INSERT INTO surfaces2 (id, msurf) VALUES (1, GeomFromText('MULTISURFACEM(((0 0 0, 0 4 0, 4 4 0, 4 0 0, 0 0 0)), CURVEPOLYGONM(COMPOUNDCURVEM((0 0 1, 2 0 1), CIRCULARSTRINGM(2 0 2, 2 1 2, 4 0 2))))'));