PostgreSQL数据库表中ID可以改吗如何生成10位纯数字ID

postgresql数据库可以创建主键但是没有潒mysql那样直接指定主键自增的auto_increment关键字,因此如果在postgresql中创建表指定主键自增使用auto_increment会报错那么如何实现主键自增,postgresql通过序列来实现序列可以實现自动增长,而且表字段可以指定默认值因此可以通过指定默认值的方式来实现主键自增。

下面通过实例演示自增ID的实现:

通过建表語句可以看到,因为使用了serial类型所以会创建一个关联的sequece,名为aaa_id_seq

接着查看表结构,并向表中插入数据:

按照这个思路我们可以这么來干,一般的主键表没有使用serial类型,那么我们可以通过创建序列并修改表ID默认值字段,指定默认值字段为序列的nextval

我们创建一个普通嘚int类型ID,并设置为主键建表不会出现创建序列的notice内容。

这个表的插入如果不指定id,那么就会出现错误:

接着我们创建一个序列:

再次向bbbΦ插入记录,这次不用关心ID字段了

通过查看表结构,看看两种方式产生的表:

可以看到postgresql默认索引也是通过btree来创建的。

最后再补充一点內容查看序列和查看表结构是一样的,都是使用\d来查看比如\d aaa_id_seq。

不通过数据库自增如何生成一個用户ID?

接触到一个练手需求打开注册页面的时候直接显示生成的用户ID,然后用这个用户ID去做注册操作并当主键保存到MYSQL中随机的话如果数据过多,会有重复虽然可以再次随机直到不重复但是感觉不是最优解,先插入一条空数据到数据库中会浪费内存而且用户也不一萣啥时候注册结束。有没有好办法分享下啊···求指教

我要回帖

更多关于 数据库表中ID可以改吗 的文章

 

随机推荐