Skip to main content
Follow these practices to keep your tables reliable, fast and safe to share across flows and agents.

Designing Tables

Choosing a primary key

Choose UUID (the default) if:
  • IDs shouldn’t be guessable or reveal how many rows exist, for example when they appear in links or are shared outside the team.
  • You may combine rows from several tables or workspaces later. UUIDs never clash, while auto-increment IDs start at 1 in every table.
Choose Auto-increment if:
  • People will refer to rows by number, such as order 1042 or ticket 17.
  • You want IDs that show the order rows were added in.
  • You’ll often type IDs by hand in SQL or filters, where a short number is easier than a UUID.
Auto-increment numbers aren’t reused, so deleting rows leaves gaps.

Importing Data

Querying

Security

Common Issues and Solutions

  • id column in the file: id is reserved. Rename the column before importing.
  • Title rows above the header: check Header row points at the real header.
  • Finding a failed row: error row numbers count data rows only, so search the file for the quoted value.
  • Display names in SQL: use the table and column identifiers instead.
  • Writing from the search bar: it only reads. Use Query Table, an agent with Allow edits, or Genie.
  • Write toggle off: turn on the matching toggle under Advanced options in Query Table.
  • Agent UPDATE or DELETE rejected: include a WHERE clause.
  • Large results: add LIMIT and ORDER BY, as results are capped at 10,000 rows.
  • Deleting a referenced table: remove the reference columns that point to it first.
  • Cascade: deleting a row also deletes the rows that reference it, so choose it deliberately.