INSERT
INSERT 用于将一条或多条记录插入到 GreptimeDB 中的表中。
INSERT INTO Statement
Syntax
INSERT INTO 语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
在上述语法中,table_name 是要插入数据的表名,column1、column2、column3 等是表中的列名。
如果你想要插入数据到指定的列中,可以在 INSERT INTO 语句中指定列名。
如果你不指定列名,数据将会插入到表中的所有列中。
VALUES 关键字后面跟着的是一个值列表,这个值列表的顺序必须和 INSERT INTO 语句中的列顺序一致。
VALUES 值支持以下数据类型:
DEFAULT关键字指定该列的默认值。 这在你不想在插入记录时显式指定某些列的值时非常有用。 它允许使用表 schema 中定义的列默认值来替代需要显示指定的值。 如果该列没有定义默认值,将会使用数据库的默认值(通常是 NULL)。- 使用十六进制字面值插入二进制字面值。
- 使用
{Value}::{Type}语法将特殊的数值Infinity、-Infinity和NaN转换为指定的数值类型。
示例
插入数据
使用 INSERT INTO 语句将一条记录插入到名为 system_metrics 的表中:
INSERT INTO system_metrics (host, idc, cpu_util, memory_util, disk_util, ts)
VALUES
("host1", "idc_b", 50.0, 66.7, 40.6, 1667446797462);
上述语句将一条记录插入到 system_metrics 表中,该记录的 host 为 "host1",idc 为 "idc_b",cpu_util 为 50.0,memory_util 为 66.7,
你还可以使用 INSERT INTO 语句一次向表中插入多条记录,例如向 system_metrics 表中插入多条记录:
INSERT INTO system_metrics (host, idc, cpu_util, memory_util, disk_util, ts)
VALUES
("host1", "idc_a", 11.8, 10.3, 10.3, 1667446797460),
("host2", "idc_a", 80.1, 70.3, 90.0, 1667446797461),
("host1", "idc_c", 50.1, 66.8, 40.8, 1667446797463);
此语句将三条记录插入到 system_metrics 表中,每列都有指定的值。
使用默认值插入数据
下面的 SQL 语句使用 DEFAULT 关键字为 cpu_util 列插入默认值:
INSERT INTO system_metrics (host, idc, cpu_util, memory_util, disk_util, ts)
VALUES ("host1", "idc_a", DEFAULT, 10.3, 10.3, 1667446797460);