postgresql数据库常用知识总结

来源:互联网 发布:超声手法训练软件 编辑:程序博客网 时间:2024/05/01 03:55

关于权限

我们创建一个视图或者表之后,通常需要把该表给与某个角色拥有权,其它角色拥有查询权。
比如
ALTER TABLE test_tab
  OWNER TO postgres;
GRANT ALL ON TABLE test_tab TO postgres;
GRANT ALL ON TABLE test_tab TO test_role;

这样test_role 针对test_tab拥有查询以及修改权限,但是test_role 只拥有查询权限。
我们有时针对第三方对接,可能会使用到需要提供给第三方视图,我们通过新建一个角色,并且
只赋予某个视图查询权限就可以完成了。

如果没有权限,而去修改的话,就会提示一个错误,那就是 must be owner of relation test_tab

但是经过测试,postgres好像是拥有最高权限,也即拥有管理员权限,不论其它表的拥有者是不是postgres,它都可以访问和修改,这就是管理员
最高权限的象征吧。



sql怎么批量替换字段里的字符串的?



方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。

1
update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')

方法二:

1
update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')

查询重复数据

select count(*),id from 表名 group by id having count(*)>1
0 0