Questions tagged «spatialite-gui»

1
如何在SpatiaLite数据库中正确重命名表?
SpatiaLite中的空间层(表)包括各种支持对象和元数据,包括(至少)geometry_columns表中的触发器,索引和条目。我正在寻找(最好是)一口气处理所有必要更改的GUI,或者寻找所有必需更改的(备用)文档,以免破坏空间层。 表有: 输入geometry_columns.f_table_name。 有五个名为的触发器[prefix]_[table_name]_geometry,其中前缀表示这是事务回滚还是索引更新。 命名为三个空间索引 idx_[table_name]_geometry[_suffix] 我已经在两个应用程序QGIS DB Manager和SpatiaLite-GUI中进行了尝试。 QGIS DB Manager出现具有以下效果: geometry_columns用新表名正确更新 不重命名触发器。触发器定义已部分修改,以BEFORE [INSERT|UPDATE|DELETE]引用新的表名,但条件仍在中搜索旧名称geometry_columns。 不重命名空间索引。不确定这是否重要,因为触发器仍引用旧的索引名称。 当您在SpatiaLite-GUI中选择“维护”→“重命名”表时,您仅获得一条SQL ALTER TABLE语句的存根。这是简单易懂的SQL,甚至比QGIS DB Manager还少。如果您填写新的表名,该表将被重命名。其他效果: 表格未在中重命名geometry_columns.f_table_name,这意味着许多GIS不会将表格视为空间层。 不重命名触发器。触发器定义已部分修改,以BEFORE [INSERT|UPDATE|DELETE]引用新的表名,但条件仍在中搜索旧名称geometry_columns。 不重命名空间索引。不确定这是否重要,因为触发器仍引用旧的索引名称。 请注意,Spatialite-GUI确实提供了恢复几何列的选项,该列将向其添加正确的条目geometry_columns(但要求您指定SRID,几何类型和尺寸),构建或重建空间索引以及恢复触发器,但没有这些功能中的一部分会删除旧的表行,触发器或索引,从而导致其中包含很多(可能无害但令人讨厌)schmutz的数据库。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.