postgreSQL中的序列使用
来源:互联网 发布:中国it培训排名 编辑:程序博客网 时间:2024/05/18 03:19
serial简单使用如下:
create table stest (id serial,name varchar(10));
insert into stest values(nextval('stest_id_seq'),'bai');
insert into stest values(nextval('stest_id_seq'),'xiao');
insert into stest values(nextval('stest_id_seq'),'yu');
select * from stest;
1;"bai"
2;"xiao"
3;"yu"
insert into stest values(null,'test');
错误: 在字段 "id" 中空值违反了非空约束
DETAIL: 失败, 行包含(null, test).
********** 错误 **********
错误: 在字段 "id" 中空值违反了非空约束
SQL 状态: 23502
详细:失败, 行包含(null, test).
可以再插入的时候缺省这个serial字段,这样就自动的生成下一个值
insert into stest(name) values('test');
select * from stest;
1;"bai"
2;"xiao"
3;"yu"
4;"test"
select * from pg_class where relname like 'stest%';
我们看到自动生成了一个stest_id_seq的对象
文档上面的描述
CREATE TABLE tablename ( colname SERIAL);
等价于声明下面几个语句:
CREATE SEQUENCE tablename_colname_seq;CREATE TABLE tablename ( colname integer NOT NULL DEFAULT nextval('tablename_colname_seq'));ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
删除该表,则与这个表相关联的sequence自动删除
drop table stest;
select * from pg_class where relname like 'stest%';
返回空。
如果手工创建序列,语法如下
CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ] [ OWNED BY { table_name.column_name | NONE } ]
如果添加了temp,那么这个序列只会存在于这个会话中,会话结束时这个序列会自动删除。别的选项都跟oracle一样了
CREATE SEQUENCE serial START 101;
select currval('serial');
select nextval('serial');
要先使用nextval,在使用currval获取当前的值,currval返回的是最近一次使用nextval获得的值。否则直接使用currval会报错。
select lastval();返回任何序列的最近的nextval的值。
select setval('serial',300);设置序列的值
300
select nextval('serial'); 是设置的值+1
301
- postgreSQL中的序列使用
- PostgreSQL 序列使用
- PostgreSQL之序列使用
- PostgreSQL中的group_concat使用
- postgresql序列
- MySQL中的序列使用
- PostgreSQL不同的表使用不同的自增序列
- postgresql创建序列查询序列
- PostgreSQL序列操作函数:
- PostgreSQL 序列(SEQUENCE)
- PostgreSQL 序列(SEQUENCE)
- PostgreSQL 序列(SEQUENCE)
- PostgreSQL 序列(SEQUENCE)
- PostgreSQL 序列(SEQUENCE)
- PostgreSQL 序列(SEQUENCE)
- postgresql 的序列
- Postgresql的序列
- PostgreSQL之Sequence序列
- Cocos2d-x里Javascript开发的一些要点
- ORACLE rman备份策略结合crontab
- 优秀blog 不断进步(各种学习资源汇总)未完待续
- Docker在云环境中的应用实践初探:优势、局限性与效能评测
- 矩阵按列按行归一化到L2范数的原理和最精简Matlab代码
- postgreSQL中的序列使用
- System.getProperty("line.separator")
- 视觉显著性发展与现状——本科毕业设计总结
- unity加载视频
- visual studio运行时库MT、MTd、MD、MDd的研究
- Linux设置Memcached开机启动
- Note: Linux network device driver construct
- socks代理服务器协议的说明
- IntelliJ Spring Configuration Check