关于postgre生成自增的信息( 二 )


4、select pg_backend_pid();获得id , 就是gdb后面用到的数字 gdb /usr/local/pgsql/bin/postgres 997(pid的数字)如果只使用gdb , 全部是命令行界面;而Emac、DDD分别是彩色、黑白用户交互式图形界面 。
为什么PostgreSQL的自增ID是非连续的就像mysql 的uuid一样 , 每次select nextval(user_seq)都会自动递增的 。
这类自增字段是不会去补被删除的记录对应的ID的 , 就是说系统里记录一个最大值,每次增加记录都在这个值上增长 , 这类值在应用中不要去考虑让其连续,因为要连续代价太大,相当于重建个表重新生成这个字段值 。
既然用了数据库,就要转变思路,学会数据库的逻辑 。虽然在物理存储的概念上来说是一行一行的 , 但逻辑上数据库中是没有行的概念的 , 所以说这个问从设计之初就有问题 。
自动实现比较困难 。你就不能自增长的值为序号 。用存储过程来实现 。
结论:mysql在字段上加AUTO_INCREMENT属性来实现自增,pg使用serial类型 , 序列号类型其实不是真正的类型,当声明一个字段为序列号类型时其实是创建了一个序列 。
自增列的类型应为int或bigint型 。可以设置起始和每次递增数 。如:create table [table1]([id] [int] identity(1 , 1)...)这样每次插入则不需要为主键设置参数,数据库会根据设置的递增条件,自动给出主键值 。
postgre生成自增的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于、postgre生成自增的信息别忘了在本站进行查找喔 。

推荐阅读