개발 가이드

Local Navigation

pragma 사용

PRAGMA 명령은 스키마를 쿼리하고, 스키마 쿠키 및 사용자 쿠키를 수정하고, SQLite 라이브러리 작업을 수정하고, 라이브러리를 디버그할 수 있도록 하는 SQLite의 기능입니다. 지원되는 pragma는 Pragma 클래스에 문서화되어 있습니다.

Database API는 다음 Pragma 명령을 지원합니다.

Pragma

설명

collation_list

현재 데이터베이스 연결에 대해 정의된 정렬 시퀀스 목록을 얻습니다.

예를 들어, 정의된 정렬 시퀀스 목록을 얻으려면 SQL 문 "PRAGMA collation_list;"를 실행한 다음, 결과 행을 읽습니다.

compile_options

데이터베이스를 구축할 때 사용되는 컴파일 시간 옵션의 이름을 얻습니다.

예를 들어, SQLite 라이브러리에 대한 컴파일 옵션을 얻으려면 SQL 문 "PRAGMA compile_options;"를 실행한 다음, 결과 행을 읽습니다. 행마다 한 개의 옵션이 있습니다.

database_list

현재 데이터베이스 연결에 연결된 각 데이터베이스에 대해 하나의 행을 얻습니다.

예를 들어, 하나의 연결에 대해 연결된 데이터베이스 목록을 얻으려면 SQL 문 "PRAGMA database_list;"를 실행한 다음, 결과 행을 읽습니다. 행마다 한 개의 데이터베이스 이름이 있습니다.

foreign_keys

외래 키 제약 조건의 적용을 얻거나 설정합니다. 이 설정은 DatabaseOptions 클래스에서 foreign_key_constraints 옵션을 사용하는 것과 동일합니다.

예를 들어, 외래 키 제약 조건의 적용을 설정하려면 트랜잭션 밖에서 SQL 문 "PRAGMA foreign_keys;"를 실행합니다.

freelist_count

VACUUM 명령을 실행해야 하는 때를 결정하는 데 사용할 수 있도록 데이터베이스에서 사용하지 않은 페이지 수를 얻습니다.

예를 들어, 데이터베이스 파일에서 사용하지 않은 페이지 수를 얻으려면 SQL 문 "PRAGMA freelist_count;"를 실행한 다음 결과 행을 읽습니다.

journal_mode

현재 데이터베이스 연결의 저널 모드를 얻거나 설정합니다. 사용 가능한 설정마다 제공하는 성능 및 데이터 안전 수준이 다릅니다. WAL 및 OFF를 제외한 모든 옵션은 롤백 저널을 사용합니다. 다음과 같은 옵션이 있습니다.

  • DELETE: 트랜잭션 끝에서 롤백 저널을 삭제합니다(기본).
  • TRUNCATE: 롤백 저널의 크기를 0으로 만들어 트랜잭션을 커밋합니다.
  • PERSIST: 다른 연결에서 저널을 롤백하지 못하도록 합니다. 이 모드에서는 롤백 저널이 매우 커질 수 있으므로 사용자가 journal_size_limit을 사용하여 이를 모니터하고자 할 수도 있습니다.
  • MEMORY: RAM에 롤백 저널을 저장합니다.
  • WAL: 롤백 저널 대신 사용되는 미리 쓰기 로그를 만듭니다.
  • OFF: 롤백 저널을 사용할 수 없도록 만들어 SQLite의 원자적 커밋 및 롤백 기능을 사용할 수 없도록 만듭니다.

예를 들어, 저널링 모드를 확인하려면 SQL 문 "PRAGMA journal_mode;"를 실행한 다음 결과 행을 읽습니다. 저널링 모드를 미리 쓰기 로그로 변경하려면 SQL 문 "PRAGMA journal_mode = WAL;"을 실행합니다.

journal_size_limit

저널 크기 한도를 바이트 단위로 얻거나 설정합니다. 이는 journal_modePERSIST로 설정되어 있는 경우 유용합니다.

예를 들어, 저널 크기 한도를 확인하려면 SQL 문 "PRAGMA journal_size_limit;"을 실행한 다음 결과 행을 읽습니다. 저널 크기 한도를 1000바이트로 설정하려면 SQL 문 "PRAGMA journal_size_limit = 1000;"을 실행합니다.

page_count

데이터베이스의 전체 페이지 수를 얻습니다.

synchronous

데이터베이스에 대한 동기화 모드를 설정합니다. 옵션에는 FULL(기본이며, 가장 안전하지만 가장 느린 모드), NORMALOFF가 있습니다.

예를 들어, 동기화 모드를 확인하려면 SQL 문 "PRAGMA synchronous;"를 실행한 다음 결과 행을 읽습니다. 동기화 모드를 OFF로 변경하려면 SQL 문 "PRAGMA synchronous = 0;"을 실행합니다.

user_version

사용자 버전을 얻거나 설정합니다. 해당 사용자 버전은 SQLite에서 사용되지 않으며, 개발자는 사용할 수 있습니다. 사용자 버전은 32비트의 부호 있는 정수입니다.

예를 들어, 사용자 버전을 123으로 설정하려면 SQL 문 "PRAGMA user_version = 123;"을 실행합니다. 사용자 버전을 확인하려면 SQL 문 "PRAGMA user_version;"을 실행한 다음 결과 행을 읽습니다.

다음 주제: BLOB 작업

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.