如何删除Spatialite GUI中的字段或行

时间:2017-09-09 16:42:32

标签: sql qgis spatialite

我试图找到一种从现有QGIS Spatialite数据库文件中删除列/字段的简单方法。我是Spatialite GUI和SQL的新手,但我希望完成上述工作。我右键单击一个图层(for-China)并从上下文菜单中选择“显示列”。然后我收到一条错误消息:

SQL error: "near "-": syntax error"

SQL syntax error

所以我尝试执行声明:

PRAGMA table_info('for-China');
alter table 'for-China'
delete row 'note';

并且表格显示,但NOTE行未被删除:

NOTE still appears (not deleted)

我尝试使用COLUMN而不是ROW,并尝试使用DROP而不是DELETE但是仍然保持不接触。我对如何删除NOTE行感到困惑。

1 个答案:

答案 0 :(得分:0)

我假设spatialite使用与SQLite相同的转义字符。因此,请尝试双引号:

PRAGMA table_info("for-China");

alter table "for-China" drop column note;

对于作为关键字的标识符或使用字母数字,下划线(或许还有其他几种)以外的字符,您应该只需要这个。

SQLite还会识别反引号和方括号,如documentation中所述。