Appwrite. Services. TablesDB
(appwrite v1.0.0)
View Source
The TablesDB service provides a structured, SQL-like data storage layer on
top of Appwrite — separate from the document-oriented Database service.
This is an entirely new Appwrite Cloud service added in v1.0.0.
TablesDB exposes tables, columns, and rows with typed constraints, making it suitable for workloads that require strict schemas and relational-style queries.
Hierarchy
Project
└── Table
├── Column (schema definition)
└── Row (data)
Summary
Functions
Create a new Column in a Table.
Create a new Row in a Table.
Create a new Table.
Delete a Column by its unique ID.
Delete a Row by its unique ID.
Delete a Table by its unique ID.
Get a Column by its unique ID.
Get a Row by its unique ID.
Get a Table by its unique ID.
List all Columns for a Table.
List Rows in a Table.
List all Tables in the project.
Update a Column — change required/default/size constraints.
Update a Row by its unique ID.
Update a Table's name and/or permissions.
Upsert a Row (create or update atomically).
Functions
@spec create_column(String.t(), String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, any()}
Create a new Column in a Table.
Parameters
table_id(required)column_id(required) – unique column keytype(required) – data type:"string","integer","float","boolean","datetime","email","url","ip","enum", etc.optskeyword list::required– boolean (defaultfalse):default– default value:array– whentrue, stores a list of the given type:size– max length for string columns:min– minimum value for numeric columns:max– maximum value for numeric columns:elements– list of allowed values for enum columns:format– format hint (e.g."email","url","ip")
@spec create_row(String.t(), String.t(), map() | nil, [String.t()] | nil) :: {:ok, map()} | {:error, any()}
Create a new Row in a Table.
Parameters
table_id(required)row_id(required) – unique identifier; use"unique()"to auto-generatedata(optional) – map of column keys → valuespermissions(optional)
@spec create_table(String.t(), String.t(), [String.t()] | nil, boolean() | nil) :: {:ok, map()} | {:error, any()}
Create a new Table.
Parameters
table_id(required) – unique identifier; use"unique()"to auto-generatename(required) – human-readable table namepermissions(optional) – list of permission stringsdocument_security(optional) – whentrue, enables per-row security
Delete a Column by its unique ID.
Parameters
table_id(required)column_id(required)
Delete a Row by its unique ID.
Parameters
table_id(required)row_id(required)
Delete a Table by its unique ID.
Parameters
table_id(required)
Get a Column by its unique ID.
Parameters
table_id(required)column_id(required)
Get a Row by its unique ID.
Parameters
table_id(required)row_id(required)
Get a Table by its unique ID.
Parameters
table_id(required)
List all Columns for a Table.
Parameters
table_id(required)queries(optional)
List Rows in a Table.
Parameters
table_id(required)queries(optional)
List all Tables in the project.
Parameters
queries(optional)search(optional)
Update a Column — change required/default/size constraints.
Note: the column type cannot be changed after creation.
Parameters
table_id(required)column_id(required)optskeyword list – any subset of the fields fromcreate_column/4
@spec update_row(String.t(), String.t(), map() | nil, [String.t()] | nil) :: {:ok, map()} | {:error, any()}
Update a Row by its unique ID.
Parameters
table_id(required)row_id(required)data(optional) – map of column keys → new valuespermissions(optional)
@spec update_table(String.t(), String.t(), [String.t()] | nil, boolean() | nil) :: {:ok, map()} | {:error, any()}
Update a Table's name and/or permissions.
Parameters
table_id(required)name(required) – new table namepermissions(optional)document_security(optional)
@spec upsert_row(String.t(), String.t(), map() | nil, [String.t()] | nil) :: {:ok, map()} | {:error, any()}
Upsert a Row (create or update atomically).
Parameters
table_id(required)row_id(required)data(optional)permissions(optional)