postgresql 相关

1.查询相关

1.按天分组

将timestamp转为date类型,再group by

  • 表结构
created_at         | timestamp with time zone |           |          | now()
  • 需求

created_at字段按天分组

将table_name换成自己的表名

with tmp as(select created_at::DATE from table_name) select tmp.created_at,count(*) from tmp group by created;

image-20211008103308449

2.导入导出

有时候查询出来的条件较为复杂借助excel查看分析更为直观,将查询结果导出文件成为必要需求。

copy (select * from table_name) to '/tmp/xxx.csv' with csv header; --导出文件为csv格式需要加上 with csv header 

此命令可能会报错

must be superuser to COPY to or from a file

改为即可

copy (select * from table_name) to '/tmp/xxx.csv' with csv header; --导出文件为csv格式需要加上 with csv header 

踩坑

1.表迁移自增主键未同步

在做数据库迁移的时候,采用\copy 将表导出后再导入,发现再新增数据的时候主键冲突了。主键采用的时候自增模式。

create table table_name(id serial;primary key);
  • 解决方案
  1. 查看原表id最大值(主键自增到哪了)
select max(id) from table_name;
  1. 将导出的新表手动更新主键id到此值
 id                 | integer                  |           | not null | nextval('invite_new_record_id_seq'::regclass)
setval('invite_new_record_id_seq', 最大值+1) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值