当前位置: 首页 > 编程笔记 >

PostgreSQL 序列增删改案例

丌官积厚
2023-03-14
本文向大家介绍PostgreSQL 序列增删改案例,包括了PostgreSQL 序列增删改案例的使用技巧和注意事项,需要的朋友参考一下

创建序列

CREATE SEQUENCE if not exists test_mergetable_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
//或者: 
create sequence if not exists test_mergetable_id_seq increment by 1 minvalue 1 no maxvalue start with 1; 

指定序列(给表的主键指定创建好的序列)

alter table test_mergetable alter column "i_id" set default nextval('test_mergetable_id_seq');

设置序列自增长从当前最大值开始

SELECT setval('test_mergetable_id_seq', (SELECT MAX(i_id) FROM test_mergetable));
alter sequence test_mergetable_id_seq start with 12;

删除序列

drop sequence IF EXISTS test_mergetable_id_seq

查看序列

SELECT nextval('test_mergetable_id_seq')

补充:pgsql的schema对用户授权,单个用户跨schema增删改查操作

--创建用户

create user user1;

--修改密码

alter user report with password 'password';

--授权查询权限

grant usage on schema schema1 to user1;
grant usage on schema schema2 to user1;

修改search_path可跨schema操作

set search_path = "$user",user1,user2

--授权schema:schema1给user1权限 这个权限太大需要慎用

grant all on schema schema1 to user1;

--授权schema的表权限给user1 用户权限太多需慎用

grant all on all tables in schema schema1 to user1;

--授权schema的表权限给user1 用户权限太多需慎用

grant all on all tables in schema schema1 to user1;

--授权某个schema的单个表查权限

grant select on schema2.table1           to user1;

--收回所有授权

revoke all on all tables in schema schema1 from user1;

--为某个特定用户设置search_path

alter user user1 set search_path="$user",user1,user2;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持小牛知识库。如有错误或未考虑完全的地方,望不吝赐教。

 类似资料:
  • /** * 用户控制器 */ public class UserController { /** * 用户列表 * @param request * @param response */ public void users(Request request, Response response){ List<User> u

  • 本文向大家介绍BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查,包括了BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查的使用技巧和注意事项,需要的朋友参考一下 前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根

  • 我为最长的递增子序列编写了一个递归解,它运行得非常好。但是当我在同一个代码上应用dp时,它给出了不同的答案。问题链接:https://practice.geeksforgeeks.org/problems/longest-increasing-subsequence-1587115620/1递归代码: DP代码: 我不知道我做错了什么?对于这个测试用例6(n)6 3 7 4 6 9(arr[]),

  • 问题内容: 我有一张桌子。为了快速升级/部署网站,我做了一个新表,其中包含一些新数据,方法是: 现在每个表都有一个PK列,看起来像: 重要的一点是,两个表都依赖于完全相同的序列。没有。就我的目的而言,这似乎还可以。 此后,我加载了新数据并重命名了表,以便将其作为实盘接管,而原始表变成了。现在我尝试删除: 足够公平,列默认值仍取决于顺序。 这是踢脚线。 因此,不再对序列具有任何可见的依赖关系,但是它

  • 主要内容:插入记录,修改记录,删除记录,查询数据接下来,我们将介绍 Hibernate 是如何实现对数据库的增删改查(CRUD)操作的。 插入记录 Hibernate 在 Session 接口中为我们提供了一个 save() 方法,该方法可以向据库表中插入记录。 1. 在测试类 MyTest 中,创建一个名称为 testInsert 的方法,代码如下。 2. 运行测试方法 testInsert(),控制台输出如下。 3. 查询数据库 user

  • 数据库的4个基本操作--增加,删除,更新(修改),查询 也就是传说中的CURD党 本章知识点 把对象存入数据库(insert) 把对象从数据库删除(delete) 更新对象属性(update) 分页查询(query) 内部跳转到Jsp页面

  • 要删除表的列,请在ALTER table语句中使用drop column子句,如下所示: 错误:“rs”行或其附近出现语法错误1:ALTER TABLE res_partner rs

  • 问题内容: 下面的查询生成一行DNA序列 结果-dna CCCGGTTCTCCCCATGCAGG 我想生成10个随机DNA序列 问题答案: 像这样吗?