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;


     
  • 相关阅读:
    MATLAB getframe
    matlab 中 hold on 和hold off的使用
    在MATLAB中得到系统当前日期、时间的函数
    Matlab 中常用的直线与点形表示属性
    matlab中的unique函数详解
    栈的整体作用
    文件句柄、文件描述符与进程和多线程的那些事
    IP头、TCP头、UDP头详解以及定义
    计算机是如何启动的?
    uCOS-II 任务调度机制
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/11279339.html
Copyright © 2011-2022 走看看