我正在尝试使用spatialite向现有的sqlite3表中添加一个几何图形列。我是否可以在现有数据库上调用“SELECT initspatialMETADATA()”,然后在现有表上调用AddGeometryColumn?或者我需要把table掉到地上?或者,我是否需要完全启动一个新数据库并立即调用initspatialMETADATA(或者使用spatialite cli创建数据库)?
7kjnsjlb1#
您希望在spatialite数据库的现有表上添加新的几何列。有几点我想向你们强调
spatialite
sqlite> select InitSpatialMetaData();
1.必须在创建新数据库后立即调用InitSpatialMetaData()函数,然后再尝试调用任何其他空间SQL函数。1.此函数的作用域正好用于创建(和填充)SpatiaLite内部需要的任何元数据表。1.如果已经存在元数据表,则此函数不执行任何操作。因此,多次调用InitSpatialMetaData()是无用的,但完全无害。最后,我以前从未尝试过。但我认为,您可以使用AddGeometryColumn在现有表中添加新列。为什么不试着这样做呢?
1条答案
按热度按时间7kjnsjlb1#
您希望在
spatialite
数据库的现有表上添加新的几何列。有几点我想向你们强调
1.必须在创建新数据库后立即调用InitSpatialMetaData()函数,然后再尝试调用任何其他空间SQL函数。
1.此函数的作用域正好用于创建(和填充)SpatiaLite内部需要的任何元数据表。
1.如果已经存在元数据表,则此函数不执行任何操作。因此,多次调用InitSpatialMetaData()是无用的,但完全无害。
最后,我以前从未尝试过。但我认为,您可以使用AddGeometryColumn在现有表中添加新列。为什么不试着这样做呢?