腾讯云数据仓库 TCHouse-P insert 语句

postgres=# insert into tbase(id, nickname) values(1, ‘hello TBase’)。

相关产品
腾讯云数据仓库 TCHouse-P 产品页,含版本规格、价格与购买入口。

SQL 插入语句

一、插入单条记录

·指定所有字段:

结果:INSERT 0 1

·指定某些字段,未指定字段将使用默认值:

postgres=# insert into tbase(nickname) values('TBase 好');

结果:INSERT 0 1

·不指定字段,则默认所有字段与建表时一致:

postgres=# insert into tbase values(nextval('t_id_seq'::regclass), 'TBase 好');

结果:INSERT 0 1

·字段顺序可以任意排列:

postgres=# insert into tbase(nickname, id) values('TBase swap', 5);

结果:INSERT 0 1

·使用 default 关键字,即值为建表时指定的默认值方式:

postgres=# insert into tbase(id, nickname) values(default, 'TBase default');

结果:INSERT 0 1

·插入记录后的数据:

postgres=# select * from tbase;

id nickname
1 hello TBase
2 TBase 好
5 TBase swap
3 TBase 好
4 TBase default

二、插入多数记录

·插入多条记录:

postgres=# insert into tbase(id, nickname) values(1, 'hello TBase'), (2, 'TBase 好');

结果:INSERT 0 2

·插入后查询结果:

postgres=# select * from tbase;

id nickname
1 hello TBase
2 TBase 好

三、使用子查询插入数据

·使用子查询插入数据:

postgres=# insert into tbase(id, nickname) values(1, (select relname from pg_class limit 1));

结果:INSERT 0 1

·插入后查询结果:

postgres=# select * from tbase;

id nickname
1 pg_statistic

四、从另外一个表取数据进行批量插入

·从另一个表批量插入数据:

postgres=# insert into tbase(nickname) select relname from pg_class limit 3;

结果:INSERT 0 3

·插入后查询结果:

postgres=# select * from tbase;

id nickname
5 pg_type
6 pg_toast_2619
4 pg_statistic

五、大批量的生成数据

·使用 generate_series 函数大批量生成数据:

postgres=# insert into tbase select t, md5(random()::text) from generate_series(1,10000) as t;

结果:INSERT 0 10000

·插入后计数:

postgres=# select count(1) from tbase;

count
10000

六、返回插入数据,轻松获取插入记录的 serial 值

·插入记录并返回所有字段:

postgres=# insert into tbase(nickname) values('TBase 好') returning *;

id nickname
7 TBase 好

·指定返回字段:

postgres=# insert into tbase(nickname) values('hello TBase') returning id;

id
8

七、insert..update 更新

·使用 ON CONFLICT 子句进行更新:

postgres=# insert into t values(1,'pgxz') ON CONFLICT (id) DO UPDATE SET nc = 'tbase';

结果:INSERT 0 1

·更新后查询结果:

postgres=# select * from t;

id nc
1 tbase

八、insert all

·使用 insert all 语句:

postgres=# create table t5(f1 int, f2 int);postgres=# create table t6(f1 int, f2 int);postgres=# insert all into t5 values(1, 1) into t6 values(1, 1) select 1 as f1, 1 as f2;

结果:INSERT 0 2

·查询 t5 表:

postgres=# select * from t5;

f1 f2
1 1

·查询 t6 表:

postgres=# select * from t6;

f1 f2
1 1
赞 (0)
上一篇 4天前
下一篇 4天前