Oracle学堂之创建字段自增长的方法

    作者:课课家更新于: 2017-01-19 15:00:17

    软考,您想通过吗?一次通过才是硬道理

      如何在Oracle中创建字段自增长相信很多初学者都不太明白,部分人甚至觉得只有老手才能完成这样的操作。那么到底实际上有没有这么难呢?为此在本文中课课家笔者就为大家简单介绍Oracle创建字段自增长的方法和步骤供大家参考参考,让大家对此有一个基本的了解。

    Oracle学堂之创建字段自增长的方法

     


     

      我们知道MySQL等其他数据库中有随着记录的插入而表ID自动增长的功能,但是在Oracle中却没有这样的功能,那么我们有什么方法来解决这个棘手的问题呢?其实我们可以通过两种方式可以解决字段自增长的功能。由于两种方式都需要通过创建序列来实现,笔者这里先给出序列的创建方式:

      CREATE SEQUENCE 序列名

      [INCREMENT BY n]

      [START WITH n]

      [{MAXVALUE/ MINVALUE n | NOMAXVALUE}]

      [{CYCLE|NOCYCLE}]

      [{CACHE n|NOCACHE}]

      下面是上述命令的具体解析:

      ● INCREMENT BY 表示用于定义序列的步长。如果省略则默认为1,如果出现负值则代表Oracle序列的值是按照此步长递减的。

      ● START WITH 表示定义序列的初始值(也就是产生的第一个值),通常默认为1。

      ● MAXVALUE 表示定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义。这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,其最大值是-1。

      ● MINVALUE 表示定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义。这时对于递减序列,系统能够产生的最小值是10的26次方;对于递增序列,其最小值是1。

      ● CYCLENOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环达到限制值后,继续产生新值就会发生错误。

      ● CACHE(缓冲) 表示定义存放序列的内存块的大小,其默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲可以改善序列的性能。

      下面是两种具体的解决方式介绍:

      


     

      【序列+触发器】

      ①创建sequence

      创建sequence

      ②创建表

      创建表

     

      ③建立触发器

      建立触发器

      ④测试并确认

      我们向表中插入一条数据并查看id字段是否自动增长。

      


     

      【序列+显示调用序列】

      ①创建sequence

      创建sequence

      ② 创建表

      创建表

      ③插入数据(显示调用序列的下一个值插入)

      --插入数据

      插入数据

      ④查看

      查看

      PS:下面是查看序列当前值和下一个值的查看方式。

      查看序列当前值和下一个值的查看方式

      


     

      我们通过比较以上两个方法不难发现,使用通过触发器直接添加的方式比显示调用要简便一点,因为我们不需要哪个字段要通过哪个序列还获取下一个值而是通过触发器进行执行的添加就可以了。当然了想要使用哪一个我们还得根据实际的操作情况来进行取舍哪种方法。以上就是Oracle中创建字段自增长的方法的简单介绍,大家如果觉得有帮助的话就点个赞吧

课课家教育

未登录