zoukankan      html  css  js  c++  java
  • PostgreSQL使用序列设置主键自增以及对序列的简单操作(新发现idea里创建表有自增的选项亲测可用)

    新发现,现在很多都是用idea,idea里可以右边的Database可以操作数据库,当然也能创建表了不是,然后如下图

    这不就是自增么,然后创建好之后用navicat看

    稳稳地自增

    **************************************************************************************************************************************

    之前一直纠结navicat中创建PostgreSQL表没有主键自增的功能,然后问大佬得知PostgreSQL 没有自增字段这一说法,但是有单独的对象:序列。 可以用序列或者其他方法来是实现这样的语法。或者设置某一列的默认值为sequence的值即可,即:nextval('序列名'),如图

    当然这个序列是需要自己创建的,这个序列目前我只能手搓代码,还没发现在navicat中用别的方式搞出来(我的navicat版本12.0.26).序列如果被一个字段用了一次,它的值都会改变.比如说空白表表1的id先用了一下,id值为1了.另一个空白表表2的id再用了一下,然后id值为2,所以说不会再从头获取序列的值.想用自增的话只能一个主键一个序列了.下面是序列的简单操作,最后会附上详细操作

     1 --创建序列,起始值必须大于0
     2 CREATE SEQUENCE start_id START 1
     3 --查看下一个序列值
     4 SELECT nextval('start_id') 
     5 --设置序列值自增的跨度长度(暂时这么形容吧...),如设定值为1,当前字段值为1,下一个值会从当前值+1,设定值为2时,下一个值会从当前值+2
     6 SELECT setval('start_id', 1)
     7 --修改序列名
     8 ALTER SEQUENCE start_id RENAME TO new_start_id
     9 --删除序列,如果有字段使用则无法删除
    10 DROP SEQUENCE new_start_id

     序列详细操作: https://www.cnblogs.com/erxiaoouba/p/9075592.html

  • 相关阅读:
    使用 Spring data redis 结合 Spring cache 缓存数据配置
    Spring Web Flow 笔记
    Linux 定时实行一次任务命令
    css js 优化工具
    arch Failed to load module "intel"
    go 冒泡排序
    go (break goto continue)
    VirtualBox,Kernel driver not installed (rc=-1908)
    go运算符
    go iota
  • 原文地址:https://www.cnblogs.com/erxiaoouba/p/9075532.html
Copyright © 2011-2022 走看看