2017-09-09 1 views
0

기존 QGIS Spatialite 데이터베이스 파일에서 열/필드를 쉽게 제거 할 수있는 방법을 찾으려고합니다. 필자는 Spatialite GUI와 SQL을 처음 접했지만 그 일을 끝내기를 원합니다. 컨텍스트 메뉴에서 레이어 (중국 용)를 마우스 오른쪽 버튼으로 클릭하고 '열 표시'를 선택했습니다. Spatialite GUI에서 필드 또는 행을 삭제하는 방법

SQL syntax error

SQL error: "near "-": syntax error" 
그래서 난 문 실행 시도 : 그럼 오류 메시지가 도착

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

와 테이블이 나타났다하지만 참고 행이 삭제되지 않은 :

NOTE still appears (not deleted)

나는 COLUMN inste DELETE 대신 DROP를 사용하여 시도했지만 NOTE는 아직 변경되지 않았습니다. NOTE 행을 삭제하기 위해 무엇을해야하는지 혼란 스럽습니다.

답변

0

나는 spatialite가 SQLite와 동일한 이스케이프 문자를 사용한다고 가정합니다. 따라서, 따옴표를 시도 :

PRAGMA table_info("for-China"); 

alter table "for-China" drop column note; 

에만 키워드입니다 식별자이 필요하거나 알파 숫자 이외의 문자를 사용한다, 밑줄 (그리고 아마도 몇 가지 다른).

또한 SQLite는 documentation에서 설명한대로 역 따옴표와 대괄호를 인식합니다.

+0

아쉽게도 작동하지 않습니다. 나는 또한 시도했다. 그러나 그것은 작동하지 않는다 : PRAGMA table_info ("for-China"); "for-China"에서 삭제 WHERE name = "NOTE"; – JAT86

+1

@ JAT86. . . 나는 "행 삭제"가 무엇인지 알지 못합니다. 당신은'drop column'을 원한다. –

+0

Spatialite 인터페이스와 혼동 스럽습니다. 열이 ** 이름 ** 또는 ** 10 **인지 여부는 알 수 없습니다. (게시 된 이미지와 같이), 그렇지만 ** name ** 아래에 NOTE가 포함 된 전체 열을 삭제하려고합니다. – JAT86

관련 문제