postgresql 中常用小语法2

postgresql 中常用小语法2,第1张

概述1. PG 中测试可能需要循环插入N多数据 这时候写function等就比较麻烦 我们可以用 generate_series 来 example:   mrapp=# create table test_series(id int) ; CREATE TABLE mrapp=# insert into test_series(id) select generate_series(1,100000)

1. PG 中测试可能需要循环插入N多数据 这时候写function等就比较麻烦 我们可以用 generate_serIEs 来

example:

mrapp=# create table test_serIEs(ID int) ;
CREATE table
mrapp=# insert into test_serIEs(ID) select generate_serIEs(1,100000);
INSERT 0 100000
mrapp=# select count(1) from test_serIEs;
count
--------
100000
(1 行记录)

2. postgresql 中比较两个字符串中重叠的数量

我们先将array转换为行数据 然后和另一个转换过的array进行去重 然后再拼为数组即可

example:


mrapp=# select unnest(array[1,2,4]);
unnest
--------
1
2
4
(3 行记录)


mrapp=# select unnest(array[1,4]) intersect select unnest(array[2,3,4]);
unnest
--------
2
4
(2 行记录)


mrapp=# select array(select unnest(array[1,4]) intersect select unnest(array[2
,4]));
array
-------
{2,4}
(1 行记录)

3. postgresql 列转数组

可以用array_agg 函数来处理

example :


mrapp=# select 1 as a union select 2 as a union select 3 as a;
a
---
1
2
3
(3 行记录)


mrapp=# select array_agg(t.a) from (select 1 as a union select 2 as a union sele
ct 3 as a) as t;
array_agg
-----------
{1,3}
(1 行记录)

3. PG中有时候会碰到一个父表下面带了一堆的字表或者关联表,要删除的话 需要一个一个先将字表或关系先删除掉,可以在删除的时候加上关键字: cascade 可以将和当前关联的东西一起删除掉

drop table XXcascade ;

drop server XX cascade;

drop extension XX cascade;

4、统计一个库中的所有表的行数和表大小 SELECTCASE WHENt.row_total=t.row_seqTHEN REPLACE(sql_content,'unionall',')aorderby2desc;') WHENt.row_seq=1THEN 'select*from('||sql_content ELSE sql_content ENDsql_content FROM(SELECTCOUNT(*)over()row_total,row_number()over()row_seq,'SELECT'''||tablename|| '''表名,count(*)表行数,pg_size_pretty(pg_total_relation_size('''|| tablename||'''::regclass))表总大小from'||tablename|| 'unionall'sql_content FROMpg_tables WHEREschemaname='public')t ORDERBYt.row_seq; 总结

以上是内存溢出为你收集整理的postgresql 中常用语法2全部内容,希望文章能够帮你解决postgresql 中常用小语法2所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存