influxdb3 create table

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.

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

# Syntax
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

OptionDescription
-H--hostHost URL of the running InfluxDB 3 Core server (default is http://127.0.0.1:8181)
-d--database(Required) Name of the database to operate on
--token(Required) Authentication token
--tags(Required) Comma-separated list of tag columns to include in the table
--fieldsComma-separated list of field columns and their types to include in the table
--tls-caPath to a custom TLS certificate authority (for self-signed or internal certificates)
--tls-no-verifyDisable TLS certificate verification (Not recommended in production, useful for self-signed certificates)
-h--helpPrint help information
--help-allPrint detailed help information

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 (_).

Field data types

Use the following data types when defining field columns with --fields:

TypeDescription
int6464-bit signed integer
uint6464-bit unsigned integer
float6464-bit floating point number
utf8UTF-8 string
boolBoolean (true or false)

Provide each field as NAME:TYPE–for example, temp:float64. Separate multiple fields with commas: --fields temp:float64,hum:float64,co:int64.

Option environment variables

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

Environment VariableOption
INFLUXDB3_HOST_URL--host
INFLUXDB3_DATABASE_NAME--database
INFLUXDB3_AUTH_TOKEN--token
INFLUXDB3_TLS_NO_VERIFY--tls-no-verify

Examples

In the examples below, replace the following:

  • DATABASE_NAME: The database name
  • AUTH_TOKEN: The authentication token
  • TABLE_NAME: A name for the new table

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 | +---------------+--------------------+----------------------------+------------+

SHOW TABLES is an SQL query. It isn’t supported in InfluxQL.

Relation to schema mode

InfluxDB 3 Core databases use one of two schema modes, set when you create the database:

  • implicit (default): influxdb3 create table is optional. InfluxDB 3 Core creates tables and columns automatically from the line protocol you write.
  • explicit (InfluxDB 3 Enterprise only) : influxdb3 create table is how you declare a table’s tag and field columns before writing to it. A write that names a table or column you haven’t declared is rejected. Add columns to a declared table later with the influxdb3 update table command.

In both modes, influxdb3 create table accepts the same options and defines the table the same way. The schema mode only changes what happens when a write references a table or column that create table hasn’t defined.


Was this page helpful?

Thank you for your feedback!