INSERT
使用 INSERT
命令将新行插入到现有表中。
info
对于带有主键的表,如果插入带有键的行,新行将覆盖现有行。
在
INSERT
后调用FLUSH
,可保存更改到存储,确保更改已提交并可在后续读取中查看。
句法
INSERT INTO table_name [ ( col_name [ , ... ] ) ]
{ VALUES ( value [ , ... ] ) [ , ( ... ) ] | select_query }
[ RETURNING col_name ];
参数
参数或子句 | 描述 |
---|---|
table_name | 要插入行的表。 |
col_name | 要插入相应值的列。 目前,必须按顺序提供表中的所有列,或者将此字段留空。 |
value | 要分配给相应列的表达式或值。 可以使用 DESCRIBE 来检查表中列的顺序。 |
select_query | 返回要插入到表中的行的 SELECT 语句。 |
RETURNING | 根据插入的每一行返回任意列的值。 |
示例
表 taxi_trips
有三列:
{
"id": INT NOT NULL,
"distance": DOUBLE PRECISION NOT NULL,
"city": VARCHAR
}
以下语句可向 taxi_trips
中插入四行新数据。
INSERT INTO taxi_trips
VALUES
(1,16,'Dallas'),
(2,23,'New York'),
(3,6,'Chicago'),
(4,9,NULL);
让我们查询该表。
SELECT * FROM taxi_trips ORDER BY id;
id | distance | city
----+----------+----------
1 | 16 | Dallas
2 | 23 | New York
3 | 6 | Chicago
4 | 9 |
以下语句可将另一个名为 taxi_trips_new
的表中的所有行插入到 taxi_trips
中。这两个表有相同的列设置。该语句也会返回已插入行的 id 值。
INSERT INTO taxi_trips
SELECT * FROM taxi_trips_new
RETURNING id;