postgresql的一些常用操作

1. 修改主键
1)    删除之前的主键
    alter table 表名 drop constraint 主键名
2)    添加主键
    alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)

    这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。

2. 插入的字符串中包含特殊字符'/&等
    需要在特殊字符前加'

3. 修改列属性
alter table <table_name> alter <column_name> type 新属性

4. 增加列
alter table <table_name> add column <column_name> <type>   default(value)

5. 数据库的导入导出
    
  1. 导入整个数据库:psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql
  2. 导出整个数据库:pg_dump -h localhost -U postgres(用户名数据库名(缺省时同用户名)   >/data/dum.sql
  3. 导出某个表:pg_dump -h localhost -U postgres(用户名数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql
    导出成csv格式文件
        copy tablename to <path> 【绝对路径】 CSV HEADER
    导入csv格式文件
        copy table from <path> CSV HEADER
         上面的路径必须是一个远程有读写权限的路径,一般在/opt文件夹下找
        有重复项则报错退出

6. 查看重复项
     ALTER TABLE <table> ADD COLUMN  <newcolumn>  SERIAL;
    select distinct  <newcolumn>, count(*) from  <table> group by  <column> having count(*) > 1
    delete from <table> where  <newcolumn> not in (select min( <newcolumn>) from  <table> group by  <target_column>)
    
    或者上面的newcolumn直接采用系统字段ctid即可,这样就不用创建新列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值