2017-09-09 9 views
0

既存のQGIS Spatialiteデータベースファイルから列/フィールドを簡単に削除する方法を探しています。私はSpatialiteのGUIとSQLの両方が新しくなっていますが、私は上記の仕事をやりたいと思っています。私はレイヤー(中国向け)を右クリックし、コンテキストメニューから「列を表示」を選択しました。それから私は、エラーメッセージました:Spatialite GUIでフィールドまたは行を削除する方法

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 inste DELの代わりにDROPを使ってみましたが、NOTEはそのまま残っています。私はNOTE行を削除するために何をすべきか混乱しています。

答えて

0

私はspatialiteがSQLiteと同じエスケープ文字を使用すると仮定します。したがって、二重引用符を試してみてください。

PRAGMA table_info("for-China"); 

alter table "for-China" drop column note; 

あなたが唯一のキーワードである識別子のためにこれを必要とするか、または英数字以外の文字を使用する必要があり、アンダースコア(そしておそらくいくつかの他)。

また、documentationで説明されているように、バックタイックと角カッコが認識されます。

+0

残念ながら、動作しません。私も試しましたが、それでもどちらかが働きません: PRAGMA table_info( "for-China"); "for-China"から削除 WHERE name = "NOTE"; – JAT86

+1

@ JAT86。 。 。私は "行を削除する"が何であるか分からない。あなたは 'ドロップ列'をしたいようです。 –

+0

私はSpatialiteインターフェイスと混同しています。列が**名前**か** 10 **かどうかわかりません。 (画像に示されているように)、はい、** name **の下にNOTEを含む列全体を削除したいと思います。 – JAT86

関連する問題