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;


     
  • 相关阅读:
    MySQL之索引优化
    使用Nginx+Lua(OpenResty)开发高性能Web应用
    Eclipse设置背景色
    删除排序数组中的重复项再练习
    计数排序_数组与集合时间比较
    nodejs+redis应用
    redis的一些优缺点
    Redis的线程模型
    GC仅仅是守护线程,空闲执行
    SpringIOC和AOP的生活案例
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/11279339.html
Copyright © 2011-2022 走看看