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

openGauss每日一练第12天|学习心得

原创 何权林 2021-12-13
306

今天是学习openGausss的第12天,数据类型。

gsql是openGauss提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护。gsql还提供了若干高级特性,便于用户使用。

gsql创建连接时,数据库默认设置会有5分钟超时时间。如果在这个时间内,数据库未正确地接受连接并对身份进行认证,gsql将超时退出。 


openGauss支持某些数据类型间的隐式转换。

主要了解了创建复合类型及枚举类型的基本操作。

1、删除复合类型时,如果类型已经被其他对象使用,需要在删除时添加cascade关键字;


测试样例:

omm@modb:~$ gsql -r
gsql ((openGauss 2.0.0 build 78689da9) compiled at 2021-03-31 21:03:52 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.


omm=# create type ty01 as (t1 int,t2 varchar, t3 text);
CREATE TYPE


omm=# alter type ty01 rename to ty001;
ALTER TYPE
omm=# alter type ty001 add attribute t4 int;
ALTER TYPE
omm=# omm=#

omm=# alter type ty001 drop attribute t3;
omm=# ALTER TYPE

omm=# create type enum01 as enum ('zone','name','age');
CREATE TYPE
omm=# alter type enum01 add value if not exists 'address' before 'zone';
ALTER TYPE

omm=# select * from pg_enum;
enumtypid | enumsortorder | enumlabel
-----------+---------------+-----------
16410 | 1 | zone
16410 | 2 | name
16410 | 3 | age
16410 | 0 | address
(4 rows)

omm=# alter type enum01 rename value 'zone' to 'city';
ALTER TYPE
omm=#
omm=# create table test01 (c1 int,c2 ty001, c3 enum01);
CREATE TABLE


omm=# insert into test01 values(1,(1,'test',1),'city');
INSERT 0 1
omm=# select * from test01;
c1 | c2 | c3
----+------------+------
1 | (1,test,1) | city
(1 row)

omm=# alter type ty001 drop attribute t4;
ALTER TYPE
omm=# select * from test01;
(1 row)

omm=# c1 | c2 | c3
----+----------+------
1 | (1,test) | city


omm=# drop type enum01;
ERROR: cannot drop type enum01 because other objects depend on it
DETAIL: table test01 column c3 depends on type enum01
HINT: Use DROP ... CASCADE to drop the dependent objects too.
omm=# drop type enum01 cascade;
NOTICE: drop cascades to table test01 column c3
DROP TYPE


omm=# drop type ty001 cascade;
NOTICE: drop cascades to table test01 column c2
DROP TYPE
omm=# select * from test01;
c1
----
1
(1 row)

omm=#

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

评论