Postgresql中新建表的时候,如何使用主键使用序列(sequence)的值进行自增长

news/2024/7/9 21:45:22 标签: postgresql, 序列主键

 我们知道,一般的数据库中都有序列,可以使用它对主键进行自增长,hbm框架都是如此(比如,hibernate)。那么,在不使用hbm框架的情况下,如何使主键进行自增长呢。其实,很简单,只需要在建表的时候给主键加一个默认值即可,下面以postgresql数据库为例,给出一个简单的说明(其他数据库的语法也许跟这个不一样):

[SQL]  view plain  copy
  1. id integer NOT NULL DEFAULT nextval('personid_seq'::regclass)  

  

 上面的"nextval('personid_seq'::regclass"部分就是关键,其中,personid_seq 就是一个序列,可以通过下面的语句进行声明:

[SQL]  view plain  copy
  1. CREATE SEQUENCE personid_seq  
  2.   INCREMENT 1  
  3.   MINVALUE 1  
  4.   MAXVALUE 9223372036854775807  
  5.   START 1  
  6.   CACHE 5;  

 

这样一来,在往数据库插入记录的时候,就不必给id字段进行手动赋值了。

 

PS:需要注意的事,你在insert into的时候,需要指明字段,不然会报错的。比如,test表中共有id与name两个字段,其中,id使用如上方式进行了自增长,那么你在插入记录的时候,需要像下面这么来写SQL语句

[SQL]  view plain  copy
  1. insert into test(namevalues('tiger');  

 而不能写成下面这种的:

[SQL]  view plain  copy
  1. insert into test values('tiger');  

 


http://www.niftyadmin.cn/n/1598910.html

相关文章

linux/Makefile 文件

Makefile 文件相当于程序编译过程中的批处理文件。是工具程序 make 运行时的输入数据文件。只 要在含有 Makefile 的当前目录中键入 make 命令,它就会依据 Makefile 文件中的设置对源程序或目标代 码文件进行编译、连接或进行安装等活动。 并发出命令对这些程 make 工具程序…

linux-0.11内核编译

平台:ubuntu10.10 这就是搭建bochs的环境,搭建bochs更操作系统关系不大,我认为重点是在bochs的配置上。配置bochs就需要对bochsrc.bxrc文档的编辑。 在安装bochs之前,需要做的是安装编译环境: code:sudo a…

postgreSQL存储过程写法示例

转载自:http://panyongzheng.iteye.com/blog/2194815 PostgreSQL的存储过程简单入门 http://blog.csdn.net/rachel_luo/article/details/8073458 存储过程事物 http://www.php100.com/manual/PostgreSQL8/tutorial-transactions.htmlPL/pgSQL - SQL存储过程语言…

不是结束,是开始

为期约32天寒假英语Short Brain学习结束了,但是这对于我们而言不是结束,恰恰是开始,是我们用新的理念来学习英语的一个开始.还有更长的路要走,我们还有经历更多.遇到更多的问题,并去解决他们. 回顾这32天的学习,刚开始在寒假之初所定的目标是两个: 1 通过Short Brain 思想 建立…

浅谈 PostgreSQL 的 timestamp 类型

转载自:http://blog.csdn.net/menghuannvxia/article/details/77883743一 PostgreSQL 中的时间类型如下Name Storage Size Description Low Value High Value Resolution times…

PostgreSQL的存储过程简单入门

转载自:http://blog.sina.com.cn/s/blog_6137d9b70102v5qd.html PostgreSQL 存储过程定义格式如下:■结构 PL/pgSQL是一种块结构的语言,比较方便的是用pgAdmin III新建Function,填入一些参数就可以了。基本上是这样的&#xff1a…

Linux-0.11内核编译问题

弄了好长时间,只是可以用linux-0.11我的Linux实验室环境,使用bochs模拟,进入Linux-0.11 cd .. cd src/linux make 这样就编译成Image了 mkdir a: mkdir a:/boot/ mcopy Image a:/boot/ 将镜像文件拷贝到启动软盘 修改menu.lst 最后…

postgresql 数据库时间间隔数据查询

当前时间向前推一天:SELECT current_timestamp - interval 1 day当前时间向前推一个月:SELECT current_timestamp - interval 1 month当前时间向前推一年:SELECT current_timestamp - interval 1 year当前时间向前推一小时:SELECT…