[SQLite] 데이터베이스 추가
추가
ATTACH DATABASE
문은 현재 데이터베이스 연결에 다른 데이터베이스 파일을 추가합니다.
다음은 sales.db
라는 데이터베이스 파일을 현재 데이터베이스 연결에 추가하는 예시입니다. 이 데이터베이스는 내부적으로 sales
라는 이름으로 사용됩니다.
ATTACH DATABASE 'sales.db' AS sales;
이제 sales
데이터베이스의 테이블에 접근하려면 sales.table_name
형식으로 참조할 수 있습니다.
분리
만약 sales.db
데이터베이스에서 더 이상 작업이 필요 없다면, 다음 명령을 사용하여 분리할 수 있습니다:
DETACH DATABASE sales;
트랜잭션
SQLite에서 여러 데이터베이스를 한 번에 사용할 수 있는 기능에 대해 쉽게 설명하자면, 여러 데이터베이스를 하나의 큰 작업(트랜잭션)으로 묶어서 처리할 수 있다는 것입니다. 이런 작업을 "원자적"이라고 하는데, 이는 모든 작업이 성공하거나, 하나라도 실패하면 아무 것도 실행되지 않은 것처럼 처리된다는 의미입니다. 쉽게 말해, 여러 데이터베이스에 걸친 작업을 한 번에 성공시키거나, 실패시 모두 원상복구시키는 것입니다.
하지만, 메인 데이터베이스가 메모리에만 존재하는 ":memory:" 모드이거나, 특정 저장 방식인 "WAL" 모드를 사용하는 경우에는 조금 다릅니다. 이 경우에는 각각의 데이터베이스 파일마다 작업이 독립적으로 처리됩니다. 예를 들어, 컴퓨터에 문제가 생겨서 데이터를 저장하는 도중에 문제가 발생하면, 일부 데이터베이스는 최신 상태로 업데이트되고 다른 일부는 업데이트되지 않을 수 있습니다.