zoukankan      html  css  js  c++  java
  • PostgreSQL 序列

    PostgreSQL 中的序列是一个数据库对象,本质上是一个自增器。因此,序列在其他同类型数据库软件中以 autoincrment 值的形式存在。在一张表需要非随机,唯一标实符的场景下,Sequence 非常有用。
    创建语法:
    CREATE SEQUENCE sequencename
        [ INCREMENT increment ]        -- 自增数,默认是 1
        [ MINVALUE minvalue ]      -- 最小值
        [ MAXVALUE maxvalue ]      -- 最大值
        [ START start ]                -- 设置起始值
        [ CACHE cache ]                -- 是否预先缓存
        [ CYCLE ]                   -- 是否到达最大值的时候,重新返回到最小值
    Sequence 使用的是整型数值,因此它的取值范围是 [-2147483647, 2147483647] 之间;

    Sequence 的函数
    Sequence 是不能被直接访问到的;他们需要通过 PostgreSQL 中的相关函数来操作他们。Sequence 的函数使用:
    nextval('sequence_name'): 将序列当前值设置成递增后的值,并返回;
    currval('sequence_name'): 返回序列当前值;
    setval('sequence_name', n, b=true): 设置当前值;b 默认设置 true,下一次调用 nextval() 时,直接返回 n,如果设置 false,则返回 n+increment:
    当数据库表序列插入冲突时,可使用下面的方法:
    SELECT setval('your_table_id_seq', (SELECT MAX(id) FROM your_table)+1);
    SELECT setval('your_table_id_seq', (SELECT MAX(id) FROM your_table),false);注意:获取表最大值的语句要加()才行。




  • 相关阅读:
    docker 容器
    web开发相关工具总结
    Linux] Git: push 出错的解决 master -> master (branch is currently checked out)
    MongoDB
    vs code 快捷键
    flutter 实现圆角头像的2种方法
    Flutter web环境变量搭建及开发
    使用VS Code调试Flutter(检查用户页面)
    Flutter走过的坑(持续更新)
    react link引入外部css样式的坑
  • 原文地址:https://www.cnblogs.com/doit8791/p/5856455.html
Copyright © 2011-2022 走看看