我试图找到一种从现有QGIS Spatialite数据库文件中删除列/字段的简单方法。我是Spatialite GUI和SQL的新手,但我希望完成上述工作。我右键单击一个图层(for-China)并从上下文菜单中选择“显示列”。然后我收到一条错误消息:
SQL error: "near "-": syntax error"
所以我尝试执行声明:
PRAGMA table_info('for-China');
alter table 'for-China'
delete row 'note';
并且表格显示,但NOTE行未被删除:
我尝试使用COLUMN而不是ROW,并尝试使用DROP而不是DELETE但是仍然保持不接触。我对如何删除NOTE行感到困惑。
答案 0 :(得分:0)
我假设spatialite使用与SQLite相同的转义字符。因此,请尝试双引号:
PRAGMA table_info("for-China");
alter table "for-China" drop column note;
对于作为关键字的标识符或使用字母数字,下划线(或许还有其他几种)以外的字符,您应该只需要这个。
SQLite还会识别反引号和方括号,如documentation中所述。