Отменить регистрацию столбца ST_Geometry

Если вы используете SQL исключительно для взаимодействия с пространственными таблицами в PostgreSQL или SQLite, отмените регистрацию столбца ST_Geometry перед удалением пространственной таблицы. В противном случае в системной таблице ST_Geometry останется висячая строка.

Отмена регистрации столбца ST_Geometry в PostgreSQL

Перед тем как воспользоваться SQL для удаления таблицы, содержащей зарегистрированный столбец ST_Geometry, примените функцию st_unregister_spatial_column для отмены его регистрации.

Ниже представлен синтаксис функции st_unregister_spatial_column:

st_unregister_spatial_column(
 '<database_name>',
 '<schema_name>',
 '<table_name>',
 '<spatial_column_name>'
);

Шаги:
  1. Откройте командную строку.
  2. Войдите в редактор SQL в качестве владельца таблицы и подключитесь к базе данных, содержащей таблицу, для которой вы хотите отменить регистрацию столбца ST_Geometry.

    В данном примере пользователь cleo подключается к базе данных spatdat.

    psql spatdat cleo

  3. В строке SQL Prompt запустите функцию st_unregister_spatial_column.

    Регистрация столбца geo таблицы waypoints в схеме cleo отменена:

    SELECT sde.st_register_spatial_column(
     'spatdat',
     'cleo',
     'waypoints',
     'geo'
    );
    

    Только владелец таблицы может отменить регистрацию пространственного столбца.

Отмена регистрации столбца ST_Geometry в SQLite

Перед использованием SQL для удаления таблицы, содержащей зарегистрированный столбец ST_Geometry, воспользуйтесь DropGeometryMetadata для отмены его регистрации.

Далее представлен синтаксис DropGeometryMetadata:

DropGeometryMetadata(
 <'main'|NULL>,
 <table_name>
);

При подключении к SQLite через клиент SQL вы подключаетесь к основной базе. Вы можете указать основную или использовать NULL, что означает, что вы подключаетесь к основной.

Шаги:
  1. Откройте редактор SQL и подключитесь к базе данных.
  2. Если вы еще не загрузили библиотеку ST_Geometry, сделайте это.
  3. Воспользуйтесь DropGeometryMetadata для отмены регистрации столбца ST_Geometry.

    В данном примере отменена регистрация столбца ST_Geometry в таблице hazardous_sites.

    SELECT DropGeometryMetadata(
     'main',
     'hazardous_sites'
    );
    

5/25/2014