PostgreSQL 创建数据库、创建用户、赋予权限、创建表、主键总结

本文详细介绍了在PostgreSQL中创建数据库、用户、schema以及分配权限的过程。通过示例展示了如何为用户jw_admin分配对特定数据库、schema及表的增删改查权限,并创建了一个名为jw_crm_article的文章表,包含文章的基本信息。此外,还探讨了如何设置序列自增主键并调整其起始值,以及插入初始数据的方法。
摘要由CSDN通过智能技术生成

-- 创建数据库

CREATE DATABASE jw_admin;

-- 使用超级用户登录数据库 -> 然后执行 ->创建用户及密码 ->设置备注

CREATE USER jw_admin WITH PASSWORD 'Navie-admin';

comment on role jw_admin is '测试用户是否创建成功';

-- 创建scheme被赋予权限 ->在数据库jw_admin session下创建schema

create schema jw_admin;

-- 赋予用户对应的schema权限和表权限

ALTER DEFAULT PRIVILEGES IN SCHEMA jw_admin GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER ON TABLES TO jw_admin ;

ALTER DEFAULT PRIVILEGES IN SCHEMA jw_admin GRANT EXECUTE ON FUNCTIONS TO jw_admin ;

ALTER DEFAULT PRIVILEGES IN SCHEMA jw_admin GRANT ALL ON SEQUENCES TO jw_admin ;

ALTER DEFAULT PRIVILEGES GRANT USAGE ON SCHEMAS TO jw_admin ;

GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER ON ALL TABLES IN SCHEMA jw_admin TO jw_admin ;

GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA jw_admin TO jw_admin ;

GRANT ALL ON ALL SEQUENCES IN SCHEMA jw_admin TO jw_admin ;

GRANT USAGE,CREATE ON SCHEMA jw_admin TO jw_admin ;

GRANT TEMPORARY ON DATABASE jw_admin TO jw_admin ;

-- 赋予序列权限

ALTER DEFAULT PRIVILEGES IN SCHEMA jw_admin GRANT ALL PRIVILEGES ON SEQUENCES TO jw_admin;

-- 修改角色为超级用户角色

alter role jw_admin with superuser;

-- 创建表

-- Table structure for jw_crm_article

-- ----------------------------

DROP TABLE IF EXISTS "jw_admin"."jw_crm_article";

CREATE TABLE "jw_admin"."jw_crm_article" (

"id" int8 NOT NULL DEFAULT nextval('"jw_admin".article_id_seq'::regclass),

"title" varchar(250) COLLATE "pg_catalog"."default",

"content" text COLLATE "pg_catalog"."default",

"public_time" timestamp(6),

"create_time" timestamp(6),

"update_time" timestamp(6),

"delete_status" varchar(1) COLLATE "pg_catalog"."default" DEFAULT 1

)

;

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."title" IS '标题';

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."content" IS '文章内容';

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."public_time" IS '发布时间';

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."create_time" IS '创建时间';

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."update_time" IS '更新时间';

COMMENT ON COLUMN "jw_admin"."jw_crm_article"."delete_status" IS '是否有效 1.有效 2无效';

COMMENT ON TABLE "jw_admin"."jw_crm_article" IS '文章表';

-- 插入数据

-- ----------------------------

-- Records of jw_crm_article

-- ----------------------------

INSERT INTO "jw_admin"."jw_crm_article" VALUES (13, 'xx', '<p>xxxx</p>', '2022-09-01 20:29:03', '2022-09-01 20:29:09.297', '2022-09-01 20:29:09.297', '1');

INSERT INTO "jw_admin"."jw_crm_article" VALUES (14, '111', '<p>111😊</p>', '2022-09-02 09:55:53', '2022-09-02 09:55:56.329', '2022-09-02 09:55:56.329', '1');

-- 表创建自动增长主键

1、在PostgreSQL当中,我们实现ID自增首先创建一个关联序列,以下sql语句是创建一个序列:

CREATE SEQUENCE article_id_seq START 30;

序列名称是article_id_seq,起始数为1。

2、然后在字段默认值里设 nextval('article_id_seq'::regclass) 即可。

 

3、保存字段属性变更。

ALTER TABLE jw_admin.jw_crm_article ALTER COLUMN id SET DEFAULT nextval('article_id_seq'::regclass);

4、修改id的自增起始数。

把当前最大的id做为当前的id自增起始数

select setval('article_id_seq',(select max(id) from jw_crm_article));

5. 如何获取自增id的当前值或者下一个值

select * from "article_id_seq";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值