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;
postgres serial创建自增列的更多相关文章
- PostgreSQL SERIAL创建自增列
PostgreSQL SERIAL创建自增列 本文我们介绍PostgreSQL SERIAL,并展示如何使用serial类型创建表自增列. PostgreSQL SERIAL伪类型 PostgreSQ ...
- Oracle12c:支持通过创建identity columen来实现创建自增列
oracle12c之前如果需要创建自增列必须要通过sequence+trigger来实现.但是oracle12c已经可以像mysql,sqlserver一样通过identity column来设置自增 ...
- c# Mongodb创建自增列
MongoCollection<BsonDocument> tblCount; if (!db.CollectionExists(tblCountName)) { ...
- Oracle自增列创建方法
最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器( ...
- oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
0 前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...
- sqlite3创建自增主键,以及清空表使自增列归零
1.创建自增主键 CREATE TABLE tb_python (ID INTEGER PRIMARY KEY AUTOINCREMENT,TITLE TEXT,URL TEXT); 2.清空表 SQ ...
- SQL Server 2008 R2——使用计算列为表创建自定义的自增列
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- mssql 获取自增列起始及增量
--首先创建一个表 CREATE TABLE [dbo].[abcd]( ,) NOT NULL, ) NULL, ) NULL ) ON [PRIMARY] --获取起始值 SELECT IDENT ...
- Oracle自增列
一.介绍: 在设计数据库时,有时候希望表的某一列为自增列,例如编号,本文就介绍如何在oracle数据库中实现自增列,需要两个步骤: 1)构建序列(sequence) 在oracle中sequence就 ...
随机推荐
- List、Set、Map 之间的区别是什么?(未完成)
List.Set.Map 之间的区别是什么?(未完成)
- Python&Selenium 数据驱动【unittest+ddt+json+HTMLTestRunner】
一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用json文件作为数据文件作为测试输入,最后借助著名的HTMLTestRunner.p ...
- JSON 语法 数据格式
我们先来看下w3cschool对json的定义: JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XM ...
- 关于create-react-app(react-scripts@3.3.0)升级的坑
今天用create-react-app my-app,看到下面的提示: A template was not provided. This is likely because you're using ...
- MySQL 下载与安装使用教程
MySQL 官网地址:https://www.mysql.com/ 等待下载完成 双击运行 如果有需要 我们可以新增一个用户出来 点击 Add User,不需要的话 直接 点击 next 默认的MyS ...
- freertos,串口接收数据后如何发送给任务
http://www.stmcu.org.cn/module/forum/thread-610230-1-1.html http://www.stmcu.org.cn/module/forum/thr ...
- 如何在Google Maps 添加多个标记
JS如下: (function() { window.onload = function() { // Creating an object literal containin ...
- SpringBoot AOP注解式拦截与方法规则拦截
AOP的本质还是动态代理对方法调用进行增强. SpringBoot 提供了方便的注解实现自定义切面Aspect. 1.使用需要了解的几个概念: 切面.@Aspect 切点.@Pointcut. 通知. ...
- 36. ClustrixDB 使用ClustrixDB加密连接
ClustrixDB使用sha256_password插件支持SSL和身份验证. 一些安全规则要求对存储在数据库中的用户密码进行更强的保护.与默认的mysql_native_password插件相比, ...
- 二维DFT
学习DIP第4天 傅里叶变换数学原理会在后续完整介绍,目前只实现代码,观察下结果,公式在上一篇博客中已经描述 内容迁移至 http://www.face2ai.com/DIP-2-2-二维DFT/ h ...