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;


     
  • 相关阅读:
    小G的城堡
    最大公约数与扩展欧几里得算法
    阶乘的逆元
    素数的判断
    快速幂
    重载高精度运算符
    Hello World!
    【JavaScript】7-13 日K蜡烛图 (15分)
    【JavaScript】7-12 两个数的简单计算器 (10分)
    【JavaScript】7-11 分段计算居民水费 (10分)
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/11279339.html
Copyright © 2011-2022 走看看