Commands Reference

Every table you create auto-generates these slash commands. All commands use Discord's native slash command interface with autocomplete.

Quick Reference

/addWrite
/updateWrite
/deleteAdmin
/queryRead
/leaderboardRead
/viewRead
/bulk-updateAdmin
/bulk-deleteAdmin

/add

Write

Add a new row to a table. Each column in the table becomes a slash command option. Required columns must be filled in; optional columns can be skipped.

Syntax

/add table:<table> <column1>:<value> <column2>:<value> ...

Example

/add table:Inventory item:"Diamond Sword" quantity:3 rarity:Epic
  • A created_by field is automatically stored with the Discord user who ran the command.
  • If a column has a default value, it will be used when the option is omitted.
  • Unique columns are validated before insertion -- duplicates are rejected with a clear error message.

/update

Write

Update an existing row. You select the row by its ID (shown in query results), then provide the columns you want to change.

Syntax

/update table:<table> row:<id> <column>:<new_value> ...

Example

/update table:Inventory row:42 quantity:5
  • Write-permission users can only update rows they created. Admins can update any row.
  • Only the columns you provide are changed -- other columns stay the same.

/delete

Admin

Delete a single row by its ID. This action is permanent and cannot be undone.

Syntax

/delete table:<table> row:<id>

Example

/delete table:Inventory row:42
  • Only users with Admin permission on the table can delete rows.
  • The bot confirms the deletion with the row data before removing it.

/query

Read

Search and filter table data. Results are displayed as a paginated embed. You can filter by any column and sort by any column.

Syntax

/query table:<table> [filter:<column>=<value>] [sort:<column>] [order:asc|desc] [limit:<n>]

Example

/query table:Inventory filter:rarity=Epic sort:quantity order:desc limit:10
  • Without filters, returns all rows (paginated).
  • Filter supports exact match by default. Use * as a wildcard for partial text matching.
  • Default sort order is by creation date, newest first.
  • Maximum limit is 25 rows per page. Use the pagination buttons to navigate.

/leaderboard

Read

Display a ranked leaderboard for any numeric column. Shows the top entries with rank numbers and a clean embed.

Syntax

/leaderboard table:<table> column:<numeric_column> [limit:<n>]

Example

/leaderboard table:Scores column:points limit:10
  • Only works with Number-type columns.
  • Default limit is 10. Maximum is 25.
  • Ties are shown with the same rank number.
  • The embed includes the column name, rank, value, and the user who created the row.

/view

Read

View a single row by its ID. Displays all columns in a detailed embed format.

Syntax

/view table:<table> row:<id>

Example

/view table:Inventory row:42
  • Shows all column values including metadata (created by, created at, last updated).
  • Useful for viewing the full detail of a row that was summarized in /query results.

/bulk-update

Admin

Update multiple rows at once using a filter. All rows matching the filter will have the specified columns changed.

Syntax

/bulk-update table:<table> filter:<column>=<value> set:<column>=<new_value>

Example

/bulk-update table:Inventory filter:rarity=Common set:price=10
  • Admin-only command to prevent accidental mass changes.
  • The bot shows a confirmation with the number of rows that will be affected before applying the change.
  • Maximum of 100 rows per bulk operation.

/bulk-delete

Admin

Delete multiple rows matching a filter. All rows that match the criteria are permanently removed.

Syntax

/bulk-delete table:<table> filter:<column>=<value>

Example

/bulk-delete table:Inventory filter:rarity=Common
  • Admin-only command. Requires confirmation before executing.
  • Shows the count of rows to be deleted and asks for a confirmation response.
  • Maximum of 100 rows per bulk operation.

Global Command Behaviour

  • Ephemeral errors — Permission errors and validation failures are shown only to the user who ran the command (ephemeral messages), keeping channels clean.
  • Autocomplete — Select-type columns show their options as you type. Table names and row IDs also support autocomplete.
  • Rate limits — Commands are rate-limited to 5 per user per 10 seconds to prevent abuse. This is well above normal usage.
  • Embeds — All responses use Discord embeds with clean formatting. Data is shown in tables or key-value pairs depending on the command.