暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第6天 | openGauss创建模式、修改模式属性和删除模式

原创 lxs_data 2021-12-06
2012

先理解模式:

   模式是一组数据库对象的集合,主要用于控制对数据库对象的访问。

openGauss官网对模式的解释:

   openGauss的模式是对数据库做一个逻辑分割。所有的数据库对象都建立在模式下面。openGauss的模式和用户是弱绑定的,所谓的弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式。


首先连接openGauss 数据库,连接命令如下:

root@modb:~# su - omm 

omm@modb:~$ gsql -r

1.创建一个名为tpcds的模式

omm=# CREATE SCHEMA tpcds;
CREATE SCHEMA

omm=# \dn+ tpcds;

List of schemas
Name | Owner | Access privileges | Description
------+-------+-------------------+-------------
(0 rows)

操作截图:



2.创建一个用户tim, 并将tpcds的owner修改为tim,且修改owner前后分别使用\dn+查看模式信息

创建一个用户tim,语句如下:

omm=# CREATE USER tim PASSWORD 'lxs_data@123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE

omm=# \dn+ tim
List of schemas
Name | Owner | Access privileges | Description
------+-------+-------------------+-------------
tim | tim | |
(1 row)

将tpcds的owner修改为tim,语句如下:

omm=# \du+ tpcds;
List of roles
Role name | Attributes | Member of | Description
-----------+------------+-----------+-------------

omm=# ALTER SCHEMA tpcds OWNER TO tim;
ALTER SCHEMA

omm=# \dn+ tpcds;
List of schemas
Name | Owner | Access privileges | Description
-------+-------+-------------------+-------------
tpcds | tim | |
(1 row)


操作截图:





3.重命名tpcds为tpcds1

查看tpcds,语句如下:

omm=# \dn+ tpcds;
List of schemas
Name | Owner | Access privileges | Description
-------+-------+-------------------+-------------
tpcds | tim | |
(1 row)

重命名tpcds为tpcds1,语句如下:

omm=# ALTER SCHEMA tpcds RENAME TO tpcds1;
omm=# ALTER SCHEMA

查看tpcds1,语句如下:

omm=# \dn+ tpcds1;
--------+-------+-------------------+-------------
tpcds1 | tim | |
(1 row)

omm=# List of schemas
Name | Owner | Access privileges | Description 

操作截图:



4.在模式tpcds1中建表customer、插入记录和查询记录

在模式tpcds1中建表customer,语句如下:

omm=# create table tpcds1.customer(id int, name char(30));
CREATE TABLE

omm=# select * from tpcds1.customer;
id | name
----+------
(0 rows)

插入记录,语句如下:

omm=# insert into tpcds1.customer values(100,'lxs_data');
INSERT 0 1

查询记录,语句如下:

omm=# select * from tpcds1.customer;
id | name
-----+--------------------------------
100 | lxs_data
(1 row)


操作截图:



5.删除模式tpcds1

直接drop 删除会有提示,提示如下:

omm=# DROP SCHEMA tpcds1;     ----下一步加上CASCADE 再执行一遍
ERROR: cannot drop schema tpcds1 because other objects depend on it
DETAIL: table tpcds1.customer depends on schema tpcds1
HINT: Use DROP ... CASCADE to drop the dependent objects too.

DROP CASCADE删除 模式:

omm=# DROP SCHEMA tpcds1 CASCADE;   ---可以删除掉
NOTICE: drop cascades to table tpcds1.customer
DROP SCHEMA

新创建一个SCHEMA ,名为:lxs_data; ,不使用CASCADE 也是可以删除的,

omm=# CREATE SCHEMA lxs_data;

CREATE SCHEMA
omm=# drop SCHEMA lxs_data;
DROP SCHEMA

看官方文档,是这么说的:

  • CASCADE | RESTRICT

    • CASCADE:自动删除包含在模式中的对象。
    • RESTRICT:如果模式包含任何对象,则删除失败(缺省行为)。

DROP  SCHEMA 官方文档连接地址:

https://opengauss.org/zh/docs/2.1.0/docs/Developerguide/DROP-SCHEMA.html


操作截图:



其他:

持续打卡第6天,继续!!!!!!!








最后修改时间:2021-12-06 18:37:38
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论