INSERT
功能描述
向表中添加一行或多行数据。
Vastbase在PostgreSQL兼容模式下,支持以下用法:
本文档仅列出INSERT 在PostgreSQL兼容模式下的特性用法,更多语法及参数说明详见开发者指南中的SQL语法INSERT 。
支持INSERT语句对Identity列插入数据值处理。
注意事项
上述功能仅在数据库兼容模式为PostgreSQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='PG')。
语法格式
INSERT INTO table_name [ OVERRIDING { SYSTEM | USER } VALUE ]...
参数说明
table_name
待更新字段取值的表名称。
OVERRIDING { SYSTEM | USER } VALUE
未指定本选项时表示使用默认值时,即使用自增序列的值。
要使用用户自定义的VALUE则必须指定本选项。
指定了
OVERRIDING SYSTEM VALUE
,表示接受用户自定义的值。指定了
OVERRIDING USER VALUE
,表示忽略用户自定义的值,使用自增序列的值。
示例
更多identity属性列的insert示例请参考CREATE TABLE的示例。
1、创建测试表并插入数据。
create table tb_1162773a(id smallint primary key GENERATED by default AS IDENTITY,name text,a4 date default '2022-12-14')
partition by system
(
partition p1,
partition p2);
create table tb_1162773b(id smallint primary key GENERATED by default AS IDENTITY,name char(6),a4 date default '2022-12-14')
partition by system
(
partition p1,
partition p2);
insert into tb_1162773b partition(p1)(name) values('aaa');
2、查询测试表数据。
select * from tb_1162773a;
select * from tb_1162773b;
查询结果为如下:
id | name | a4
----+------+----
(0 rows)
id | name | a4
----+--------+---------------------
1 | aaa | 2022-12-14
(1 row)
3、向测试表中插入数据。
insert into tb_1162773a partition(p1)(name) values('aaa'),('bbb'),(''),(null);
select * from tb_1162773a;
delete from tb_1162773a where id<2;
select * from tb_1162773a;
insert into tb_1162773a partition(p1) overriding system value values(1,'aaaa');
select * from tb_1162773a order by id;
返回结果为如下:
id | name | a4
----+------+---------------------
1 | aaa | 2022-12-14
2 | bbb | 2022-12-14
3 | | 2022-12-14
4 | | 2022-12-14
(4 rows)
DELETE 1
id | name | a4
----+------+---------------------
2 | bbb | 2022-12-14
3 | | 2022-12-14
4 | | 2022-12-14
(3 rows)
id | name | a4
----+------+------------
1 | aaaa | 2022-12-14
2 | bbb | 2022-12-14
3 | | 2022-12-14
4 | | 2022-12-14
(4 rows)