PartiQL (SQL) editor
Write SQL-compatible PartiQL with context-aware autocomplete, statement templates built from your table schema, one-click formatting and guarded write statements.
The editor
Switch the Filters panel to SQL. The editor is pre-filled with SELECT * FROM "<table>" for the current table, grows as you type and highlights keywords, functions, strings, quoted identifiers, numbers and -- comments. The statement and the last successful SELECT are remembered per tab.
Above the editor, a toolbar offers:
- 📋 Templates ▾ — insert a statement built from the table’s keys and indexes.
- ✨ Format — uppercase keywords, lowercase functions, one clause per line, indented AND/OR.
- Clear — empty the editor.
- Docs ↗ — open the AWS PartiQL reference in your browser.
A pill next to the editor tells you what kind of statement you have written: “SELECT · read” or “INSERT · writes data”, so you always know whether Execute will change the table.
SELECT * FROM "my-table" WHERE "user-id" = 'u1'. String values use single quotes.Autocomplete
Suggestions appear as you type and are scoped to where you are in the statement. Navigate with ↑ and ↓, accept with ⇥ or ↵, dismiss with Esc. Pressing space after a trigger word shows the defaults for that position.
| After… | You get |
|---|---|
FROM, UPDATE, INTO | Table names from the connection, double-quoted |
SELECT, a comma in the select list, SET, BY | Attributes: key attributes first with their type (S/N/B), then attributes discovered in loaded items |
WHERE, AND, OR, NOT | Attributes plus functions: attribute_exists, attribute_not_exists, begins_with, contains, size, attribute_type |
| An attribute in a condition | Operators: =, <>, !=, >, <, >=, <=, BETWEEN, IN, LIKE, CONTAINS, IS NULL, IS NOT NULL, IS MISSING, IS NOT MISSING |
| Anywhere else | Keywords such as SELECT, INSERT INTO, UPDATE, DELETE FROM, WHERE, ORDER BY, LIMIT |
Each suggestion carries an icon and a type badge (keyword, table, pk/sk, attr, fn, op) and highlights the part you have already typed. Up to 14 suggestions are shown at a time.
Templates
Templates are generated from the open table’s schema, so the key names and index names are already correct. Placeholder values are selected after insertion so you can start typing immediately.
-- Select all
SELECT * FROM "orders"
-- By partition key
SELECT * FROM "orders" WHERE "customerId" = 'value'
-- Sort key prefix
SELECT * FROM "orders" WHERE "customerId" = 'value' AND begins_with("orderDate", 'value')
-- Sort key range
SELECT * FROM "orders" WHERE "customerId" = 'value' AND "orderDate" BETWEEN 'from' AND 'to'
-- Filter: contains / attribute exists / value in list / pick columns
SELECT * FROM "orders" WHERE contains("tags", 'value')
SELECT * FROM "orders" WHERE attribute_exists("shippedAt")
SELECT * FROM "orders" WHERE "status" IN ['paid', 'shipped']
SELECT "customerId", "orderDate", "total" FROM "orders"Executing statements
Press ⌘+↵ or click ▶ Execute. One statement is sent per run via ExecuteStatement with consumed-capacity reporting. Results appear in the same Table, JSON and Chart views, with pagination driven by DynamoDB’s next token. The run is added to Query History.
Write statements get an extra safeguard. Before an INSERT, UPDATE or DELETE runs, DynamoOps asks you to confirm that the statement modifies data in the named table. After it succeeds, a toast reports the WCU consumed and the tab’s last SELECT is re-run automatically so the grid reflects the change.
Examples
-- Latest orders for a customer, newest first
SELECT * FROM "orders"
WHERE "customerId" = 'cus_123'
ORDER BY "orderDate" DESC
-- Items missing an attribute
SELECT "userId", "email" FROM "users"
WHERE "verifiedAt" IS MISSING
-- Fix a value with a condition
UPDATE "users"
SET "status" = 'active'
WHERE "userId" = 'usr_001' AND "status" = 'pending'