PartiQL
PartiQL 是 DynamoDB 的 SQL 相容查詢語言。將任何表格分頁切換到 PartiQL 模式
(⌘⇧M),即可直接撰寫 SELECT、INSERT、UPDATE 與 DELETE
陳述式,而不必點擊篩選膠囊。
將分頁切換到 PartiQL 模式會自動執行預設的 SELECT * FROM "table" scan — 這正等同於
在視覺化檢視中開啟該表格。一旦你編輯了陳述式,是否執行就由你決定:
按 ⌘↩ 執行。結果會串流進來,而載入更多會取得後續的頁面。
SELECT * FROM "my-table" WHERE pk = 'USER#42' AND begins_with(sk, 'ORDER#')
PartiQL 不是 SQL
DynamoDB 的 PartiQL 是刻意設計的子集。編輯器會在你輸入時檢查你的查詢,並標記 DynamoDB 不會執行的結構 — 通常會附上一鍵快速修正。常見的陷阱:
IN使用方括號,而非小括號 —WHERE id IN ['a', 'b'],而非('a', 'b')。快速修正會改寫它。當清單超過 DynamoDB 的上限(partition-key 欄位 50 個值,非鍵欄位 100 個值)時,檢查器也會在伺服器拒絕之前先發出警告。- 沒有
LIMIT子句 — 頁面大小是分頁控制項,而非 SQL。使用載入更多。 - 沒有
JOIN、GROUP BY、HAVING、聚合、子查詢、UNION或 CTE。 若需要這些,請開啟一個 Workbench 分頁 — 檢查器會指引你 過去。 LIKE→ 函式 —LIKE '%foo%'變成contains(col, 'foo'),'foo%'變成begins_with(col, 'foo')。會提供快速修正。IS NULL/IS NOT NULL→attribute_not_exists(col)/attribute_exists(col)。會提供快速修正(注意是反向對應)。- 以單引號表示字串字面值 —
'value',而非"value"。雙引號代表識別碼。
Run 按鈕旁的格式說明彈出視窗會在你需要提醒時行內列出這些。
範本與已儲存查詢
Queries 選單會將現成的陳述式放入編輯器,並對使用中表格的真實鍵與一個取樣值解析 —
因此 SELECT 範本送達時已經參照你的 partition key,而不是預留位置。用 Tab 在
標示出的空位之間移動,以填入其餘的部分。
用 Save 按鈕保留你會重複使用的陳述式 — 你已儲存的查詢會與範本一同存放在同一個 選單裡,可在任何表格上執行。Workbench 與 PartiQL 維護各自獨立的查詢庫,因為它們說的 是不同的查詢語言。
寫入範本
INSERT / UPDATE / DELETE 範本刻意使用合成的 DEMO-* 鍵,因此直接執行其中
一個不會意外改動到真實的列。它們的設計是依序執行 — 插入、然後更新、然後刪除同一個
demo 項目 — 而你可以編輯鍵以指向真實資料。
歷史
每個執行過的查詢都會儲存到各模式專屬的歷史中(與 Workbench 的分開)。重新開啟歷史選單,即可將先前的陳述式還原到編輯器 — 包括失敗的執行, 因此你可以修正後重試。


