暫存與提交
條目的編輯、建立和已暫存的刪除在觸及 DynamoDB 之前都會經過一個暫存區。可以把它想象成帶有安全閂的 git 暫存區:這些更改會作為可審閱的 diff 累積起來,然後僅在你提交時才以的形式發出。
有兩條路徑是特意繞過暫存的:PartiQL 寫入語句會帶著警告直接對你的表執行,而 ⌘⇧⌫ 會刪除選中的行並一步提交。
工作原理
每張表都有自己的暫存區,在該表的每個檢視之間共享。當你儲存一次條目編輯、建立一行或刪除一行時,該更改會作為逐屬性的 diff 落入面板 —— 新增、移除和更改的屬性並排顯示。網格中受影響的行會按操作著色:
- 綠色 —— 一個新條目(建立)
- 橙色 —— 一次更新(更改的單元格被高亮)
- 紅色 —— 一次刪除(帶刪除線)
在兩個標籤頁中開啟同一張表,它們會顯示相同的待處理更改;關閉再重新開啟某個標籤頁,暫存內容仍然在那裡。關閉一個標籤頁絕不會丟棄你已暫存的更改。
用 ⌘⇧D 切換面板。拖動它的邊緣可調整大小。

審閱更改
每張 diff 卡片都精確顯示將要更改的內容:
- 標量以舊 → 新的形式呈現,帶紅/綠高亮。
- 長字串顯示內聯的逐詞 diff。
- Map 和 List 呈現為美化列印的 JSON(v1 中按整個屬性處理)。
使用卡片的逐屬性拒絕可將單個屬性回退到其原始值。拒絕每一個屬性,整個更改就會被丟棄。
提交
提交即可把你已暫存的更改寫入 DynamoDB:
- 提交 N 會發出該表的每一項已暫存更改 —— 橫跨它的所有標籤頁。
- 僅提交此項會從某張卡片發出單個更改。
提交以帶樂觀鎖條件的 TransactWriteItems 批次發出:一次更新只有在屬性仍保持你開始時的值時才會成功,一次建立只有在條目尚不存在時才會成功,一次刪除只有在條目仍然存在時才會成功。如果你想在暫存面板之外檢查它們,本站的運算式構建器能拼出同樣的 UpdateExpression 和 ConditionExpression 形態。較大的暫存會自動分塊,以保持在 DynamoDB 的事務限制之內。
編輯器中的儲存快捷鍵在這裡同樣適用:
- ⌘S —— 暫存(不提交)
- ⌘⇧S —— 儲存並提交
- ⌘⇧X —— 丟棄所有已暫存的更改(需確認)
從網格選區你可以暫存刪除而無需開啟編輯器:
- ⌘⌫ —— 暫存對選中行的刪除
- ⌘⇧⌫ —— 刪除並提交選中行
衝突
由於提交使用樂觀鎖,在你暫存之後被他人提交的更改會被檢測出來,而不是被悄悄覆蓋。卡片會顯示一個內聯橫幅:
- 漂移 —— 遠端條目在你之下發生了變化。rebase 到遠端會重新整理基線以便你重新審閱,或者中止該更改。
- 遠端已刪除 —— 該條目不再存在。中止該更改。
- 網路不可用 —— 提交無法到達 DynamoDB。重試或中止。
一次提交會在第一個失敗的批次處停止 —— 較早成功的批次保持已寫入,其餘的不會被嘗試,失敗會以待解決的衝突形式呈現。
哪些情況會阻止提交
編輯、暫存和提交都需要試用中或已啟用的許可證。狀態會阻斷整條路徑,而不只是提交 —— 一旦應用回到啟用狀態,它就會再次解鎖。


