The geometry_columns table

When you create a table with a spatial column, or add a spatial column to an existing table, ESRI client software also requires an entry to the geometry_columns table. The geometry_columns table is a metadata table that stores the association between the spatial table and a spatial reference system.

The loadshp utility and the ESRI shp2sde command automatically create the entries in the geometry_columns table when you load data.

To update the geometry_columns table manually, insert a new row. The row must contain values for the following columns:

  • f_table_catalog: The database name
  • f_table_schema: The database owner name
  • f_table_name: The table name
  • f_geometry_column: The name of the spatial column
  • geometry_type: The ID of the geometry type
  • srid: The ID of the spatial reference system
The following table shows valid entries for the geometry_type column and the shapes they represent.
Table 1. Geometry type ID to spatial data type mapping

Geometry type ID Spatial data type
0 ST_Geometry
1 ST_Point
2 ST_Curve
3 ST_LineString
4 ST_Surface
5 ST_Polygon
6 ST_GeomCollection
7 ST_MultiPoint
8 ST_MultiCurve
9 ST_MultiLineString
10 ST_MultiSurface
11 ST_MultiPolygon

Example

For the hazardous sites and sensitive areas example, the INSERT statements for the zone and location columns are:
INSERT INTO geometry_columns
          (f_table_catalog, f_table_schema, f_table_name,
           f_geometry_column, geometry_type, srid)
   VALUES ("mydatabase",         -- database name
           "ralph",              -- user name
           "sensitive_areas",    -- table name
           "zone",               -- spatial column name
            5,                   -- column type (5 = polygon)
            5);                  -- srid

INSERT INTO geometry_columns
          (f_table_catalog, f_table_schema, f_table_name,
           f_geometry_column, geometry_type, srid)
   VALUES ("mydatabase",         -- database name
           "ralph",              -- user name
           "hazardous_sites",    -- table name
           "location",           -- spatial column name
            1,                   -- column type (1 = point)
            5);                  -- srid
The zone column has a spatial data type of ST_Polygon. The location column has a spatial data type of ST_Point.