数据库里面同义词、序列是什么东西???

数据库里面同义词、序列是什么东西???,第1张

这个应该是oracle里的吧?

同义词 synonym

相当于alias(别名),比如把user1.table1在user2中建一个同义词table1

create synonym table1 for user1.table1

这样当你在user2中查select * from table1时就相当于查select * from user1.table1

序列比较复杂,

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。

1、Create Sequence

你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,

CREATE SEQUENCE emp_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10

一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL

CURRVAL=返回 sequence的当前值

NEXTVAL=增加sequence的值,然后返回 sequence 值

比如:

emp_sequence.CURRVAL

emp_sequence.NEXTVAL

可以使用sequence的地方:

- 不包含子查询、snapshot、VIEW的 SELECT 语句

- INSERT语句的子查询中

- NSERT语句的VALUES中

- UPDATE 的 SET中

可以看如下例子:

INSERT INTO emp VALUES

(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20)

SELECT empseq.currval FROM DUAL

序列数可以增加postgresql数据表的检索速度,同时降低数据查询时的资源消耗。那么如何在postgresql中创建序列数并且应用呢?下面我给大家分享一下。

工具/材料

pgAdmin4

创建序列数01

首先打开pgAdmin4,展开postgresql数据库,找到模式下面的public选项,如下图所示

02

接下来在public下面右键单击序列,然后点击Create下面的sequence选项,如下图所示

03

在d出的创建Sequence界面中首先给序列数起一个名字,如下图所示,注意都用英文

04

然后切换到Definition页卡,定义一下序列的增加量,如下图所示,其中maximum根据自己的需要进行设置

05

最后回到数据库主界面,你会看到序列下面多出了一个项,这就是我们创建的序列数了,如下图所示

在数据表中应用序列数01

首先选中一个数据表,点击右侧的编辑按钮,如下图所示

02

在d出的编辑界面中切换到Columns页卡,点击ID签名的编辑按钮,如下图所示

03

最后在字段的编辑界面中切换到Variables选项卡,然后在Value列中通过nextval函数带入刚才定义的序列数即可,如下图所示

问题分析:序列=自增ID,是数据库根据数据插入先后顺序自动生成的。

查询方式:

只能再查询自增ID即可

具体 *** 作:MYSQL获取自增ID的四种方法

select max(id) from tablename

SELECT LAST_INSERT_ID() 函数

LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。

select @@IDENTITY

@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。

SHOW TABLE STATUS

得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10643696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存