zoukankan      html  css  js  c++  java
  • postgres serial创建自增列

      Sequence是数据库中一类特殊的对象,其用于生成唯一数字标识符。一个典型的应用场景就是手动生成一系列主键。Sequence和MySQL中的AUTO_INCREMENT的概念很像。

           创建序列Sequence有2种方式:

           第一种,指定列的类型为serial 

           CREATE TABLE table_name( id serial );

    Name Storage Size Range
    SMALLSERIAL 2 bytes 1 to 32,767
    SERIAL 4 bytes 1 to 2,147,483,647
    BIGSERIAL 8 bytes 1 to 922,337,2036,854,775,807

         第二种,先创建序列名称,然后在新建的表中列属性指定序列就可以了,该列需int 类型

     create sequence tbl_xulie2_id_seq increment by 1 minvalue 1 no maxvalue start with 1;    


    查看序列的名称
    select pg_get_serial_sequence('t1', 'id');
    默认的序列名称为table_name_column_name_seq。 例如CREATE TABLE table_name( id SERIAL );创建的序列名称为
    table_name_id_seq。


    查看当前值。多次执行结果相同。需要注意的是这里获取的是本次session中的值,如果该序列在本次session中从来没有生成过新的数据,则
    currval会报错。
    select currval('tbl_xulie_id_seq');


    查看序列下一个的可用值,每次执行后加1
    select nextval('tbl_xulie_id_seq');


    重置序列的下一个可用值,从其他地方导入数据后可能需要重置序列的初始值
    alter sequence tbl_xulie_id_seq restart with 100;


     
  • 相关阅读:
    剑指offer-23.链表中环的入口节点
    剑指offer-6从尾到头打印链表
    剑指offer-24.反转链表
    2-常见机器学习模型总结
    1-预测分析类核心算法简介
    罗马数字转整数Leetcode13
    链表反转leetcode206
    LINUX常用命令
    两种遍历list
    python笔记-字符串函数总结
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/11279339.html
Copyright © 2011-2022 走看看