• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图,hadoop-14-

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图,hadoop-14-

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图,hadoop-14-等服务器相关知识,网友希望可以进行参考

Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图,hadoop-14-


6.5.创建与管理序列

         序列常用于在新增记录时自动生成唯一标识符,序列的管理包括创建序列、使用序列、修改序列以及删除序列。

6.5.1.创建序列 

         使用CREATESEQUENCE命令来创建并初始化一个给定名称的单列序列表;

devdw=# \h CREATE SEQUENCE                        查看创建序列的帮助

Command:     CREATE SEQUENCE

Description: define a new sequence generator

Syntax:

CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]

    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]

    [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]

    [ OWNED BY { table.column | NONE } ]

 

devdw=# \ds                                        通过\ds命令查看当前数据库中存在的序列

No relations found.

devdw=# create sequence myseq start with 100;            创建名为myseq的序列

CREATE SEQUENCE

devdw=# \ds                                        通过\ds命令查看当前数据库中存在的序列              

 List of relations

 Schema | Name  |   Type   |  Owner  | Storage

-------+-------+----------+---------+---------

 public | myseq | sequence | gpadmin | heap

(1 row)

 

6.5.2.使用序列

1)        可以使用nextval函数对序列进行操作。例如:获取序列的下一个值并插入表中:

2)        重置一个序列计数器的值,函数nextval是不回滚的,一旦使用nextval中生成这个序列时下次使用时不能使用这个值,不管该序列创建是否成功还是失败;
注意:如果启用了镜像功能,nextval不允许在UPDATE和DELETE语句中被使用。

3)        检查序列当前的计数设置:SELECT * FROM SEQ_NAME;

devdw=# select setval('myseq',200);                 通过设置myseq的序列值为20

 setval

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

    200

(1 row)

devdw=# select nextval('myseq');                   查看当前序列的下一个值        

 nextval

---------

     201

(1 row)

devdw=# select * from myseq;                           查看当前序列的信息

 sequence_name | last_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_called

---------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------

 myseq         |        200 |            1 | 9223372036854775807 |         1 |           1 |       0 | f         | t

        

6.5.3.修改序列

         使用ALTERSEQUENCE命令修改已有的序列表。

devdw=# \h alter sequence                          查看修改序列的帮助

Command:     ALTER SEQUENCE

Description: change the definition of a sequence generator

Syntax:

ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]

    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]

    [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]

    [ OWNED BY { table.column | NONE } ]

ALTER SEQUENCE name SET SCHEMA new_schema

 

devdw=# alter sequence myseq start with 205;             修改当前序列的开始值为205

ALTER SEQUENCE

6.5.4.删除序列

         使用DROPSEQUENCE命令删除已有的序列表。

devdw=# \h drop sequence                       查看修改序列的帮助

Command:     DROP SEQUENCE

Description: remove a sequence

Syntax:

DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

 

devdw=# drop sequence myseq;                 删除当前序列

DROP SEQUENCE

devdw=# \ds                                 再次查看当前序列时提示无序列

No relations found. 

6.6.创建与管理索引

6.6.1.关于索引的使用说明

1)        在分布式数据库如GP中,应保守使用索引,原因在于GP属于分布式数据库,不等同于传统数据库

2)        在返回一定量结果的情况下,索引同样可以有效改善压缩AO(Append-Only)表上的查询性能,索引本质上是随机的寻址操作,而数据仓库返回的数据量是海量级别的;

3)        GP会自动为主键建立主键索引,如果在父表中创建好索引,则GP默认会为分区表创建好索引;但在修改父表索引时不能默认修改分区表的索引;

4)        需确保索引的创建在

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Greenplum+Hadoop学习笔记-14-定义数据库对象之创建与管理序列、索引以及视图,hadoop-14-

相关文章

  • 常见类型网站的SEO应该怎么操作?类型不同,操作自然不同,因为分门别类嘛,seo分门别类
  • 在Java程序中调用Salesforce REST API,salesforcerest
  • Hadoop2伪分布模式安装,hadoop2分布模式
  • 关于分布式程序 java的内存管理浅谈,java内存管理浅谈
  • Spark学习笔记之浅释,spark学习笔记
  • Nodejs课堂笔记-第四课 Dynamodb为何物,nodejsdynamodb
  • 别再用高考来绑架孩子们心中的“公平”,孩子们心中
  • Fedora20上源码安装Xen4.3.0,fedora20xen4.3.0
  • RabbitMQ(python实现)学习之二:Producer发送消息至多个消息队列queue(广播消息),rabbitmqqueue
  • 【Spark】配置Spark源码阅读环境,spark源码阅读环境

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • openstack性能测试用例和测试结果,openstack性能测试
    • springmvc No mapping found for HTTP request with URI in Dispatc,springmvcdispatc
    • 启动hive报错[ERROR] Terminal initialization failed; falling back to unsupported,hiveunsupported
    • hadoop2.6.0伪分布式安装,hadoop2.6.0伪
    • Redis源码学习-Lua脚本,redis源码-lua
    • openstack-glance-api.service start request repeated too quickly, refusing to start,openstackglance
    • 解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错,myeclipsedebug
    • Kafka集群安装,kafka集群
    • [Spark源码剖析] DAGScheduler划分stage,sparkdagscheduler
    • Hadoop自测题,hadoop

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有