> For the complete documentation index, see [llms.txt](https://ndw777.gitbook.io/manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ndw777.gitbook.io/manual/data/build-database.md).

# 整合查詢檔製作

把 `data/opendata` 裡的資料合併成一個 `allin1_YYYYMMDD.db`。

## 用法

1. 確認「**opendata.xlsx**」路徑正確（可按「重新載入」）
2. 在清單勾選要包含的資料集（有「**全選**」「**全不選**」）
3. 確認「**輸出 DB**」位置
4. 按「**開始合併**」

「**統一欄位名**」會依 `data/opendata/column_map.xlsx` 把各來源不一致的欄名改成統一的（例如各種寫法的品名欄都改成「中文品名」）。

<figure><img src="https://2425769477-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fa2UoEV34DNk0WQY3del7%2Fuploads%2FQnumGiGdk0iQtp5zJzuX%2Fimage.png?alt=media&amp;token=4287a2a0-7b47-47e8-9246-225d8704e427" alt="" width="461"><figcaption></figcaption></figure>

## 缺檔時請小心

勾選的資料集缺來源檔時，程式會先跟你確認。

**請不要隨便按繼續**：缺檔的表會被略過，而新檔的檔名日期比較新，查詢分頁會改讀這份缺表的查詢檔。清除 csv 後直接整份重做就會踩到。

## 失敗保護

某張表的新資料有問題（缺欄位、筆數腰斬）時，程式會把**上一份查詢檔的同名表原樣搬過來**，而不是留下一張壞表或缺表。資料時間也沿用舊的，下次「檢查更新」才會繼續標它有更新。

完成訊息會列出**哪幾張沿用了舊資料**。

## 更新到現有查詢檔

還有一個「**更新到現有查詢檔**」按鈕，對勾選的資料集逐一換進**目前查詢分頁實際在讀的那份**，不產生新檔。

這是給**沒有下載網址、手動放進去的檔案**用的（中藥用藥品項表、中醫藥許可證）。

## 檔案會越積越多嗎

會。每整份重做一次就多一個 `allin1_*.db`，一個幾百 MB。查詢分頁只讀**檔名日期最新**的那份，舊的可以自己刪掉（建議留一份備用）。
