docs-v2/content/shared/influxdb3-cli/create/table.md

4.2 KiB

The influxdb3 create table command creates a new table in a specified database. Tables must include at least one tag column and can optionally include field columns with defined data types.

[!Note] InfluxDB automatically creates tables when you write line protocol data. Use this command only if you need to define a custom schema or apply a custom partition template before writing data.

Usage

influxdb3 create table [OPTIONS] \
  --tags [<TAGS>...] \
  --database <DATABASE_NAME> \
  --token <AUTH_TOKEN> \
  <TABLE_NAME>

Arguments

  • TABLE_NAME: The name of the table to create.

Options

Option Description
-H --host Host URL of the running {{< product-name >}} server (default is http://127.0.0.1:8181)
-d --database ({{< req >}}) Name of the database to operate on
--token ({{< req >}}) Authentication token
--tags ({{< req >}}) Comma-separated list of tag columns to include in the table
--fields Comma-separated list of field columns and their types to include in the table
--tls-ca Path to a custom TLS certificate authority (for testing or self-signed certificates)
-h --help Print help information
--help-all Print detailed help information

[!Important]

Tag and field naming requirements

Tag and field keys are alphanumeric and must start with a letter or number. They can contain dashes (-) and underscores (_).

Option environment variables

You can use the following environment variables to set options instead of passing them via CLI flags:

Environment Variable Option
INFLUXDB3_HOST_URL --host
INFLUXDB3_DATABASE_NAME --database
INFLUXDB3_AUTH_TOKEN --token

Examples

In the following examples, replace each placeholder with your actual values:

  • {{% code-placeholder-key %}}DATABASE_NAME{{% /code-placeholder-key %}}: The database name
  • {{% code-placeholder-key %}}AUTH_TOKEN{{% /code-placeholder-key %}}: Authentication token
  • {{% code-placeholder-key %}}TABLE_NAME{{% /code-placeholder-key %}}: A name for the new table

{{% code-placeholders "DATABASE_NAME|TABLE_NAME|AUTH_TOKEN" %}}

Create an empty table

influxdb3 create table \
  --tags tag1,tag2,tag3 \
  --database DATABASE_NAME \
  --token AUTH_TOKEN \
  TABLE_NAME

Create a table with tag and field columns

influxdb3 create table \
  --tags room,sensor_id \
  --fields temp:float64,hum:float64,co:int64 \
  --database DATABASE_NAME \
  --token AUTH_TOKEN \
  TABLE_NAME

Verification

Use the SHOW TABLES query to verify that the table was created successfully:

influxdb3 query \
  --database my_test_db \
  --token AUTH_TOKEN \
  "SHOW TABLES"

Example output:

+---------------+--------------------+----------------------------+------------+
| table_catalog | table_schema       | table_name                 | table_type |
+---------------+--------------------+----------------------------+------------+
| public        | iox                | my_sensor_table            | BASE TABLE |
| public        | system             | distinct_caches            | BASE TABLE |
| public        | system             | last_caches                | BASE TABLE |
| public        | system             | parquet_files              | BASE TABLE |
+---------------+--------------------+----------------------------+------------+

[!Note] SHOW TABLES is an SQL query. It isn't supported in InfluxQL.

{{% /code-placeholders %}}