MySQL和PostgreSQL自增的区别

结论: 1、mysql在字段上加AUTO_INCREMENT属性来实现自增,pg使用serial类型,序列号类型其实不是真正的类型,当声明一个字段为序列号类型时其实是创建了一个序列。2、mysql插入的是字段的值,pg执行插入的时候变化的是字段值和序列的值,只不过在缺省插入的时候二者相等。 所以,INSERT时如果没有...
MySQL和PostgreSQL自增的区别


结论: 1、mysql在字段上加AUTO_INCREMENT属性来实现自增,pg使用serial类型,序列号类型其实不是真正的类型,当声明一个字段为序列号类型时其实是创建了一个序列。
2、mysql插入的是字段的值,pg执行插入的时候变化的是字段值和序列的值,只不过在缺省插入的时候二者相等。 所以,INSERT时如果没有给该字段赋值会默认获取下一个值或者对应序列的下一个值。 但是在该字段有赋值插入之后,就有区别了,pg赋值插入的时候是改变了字段的值但是没有改变序列的值,所以再次缺省赋值插入时依旧是顺序获取对应序列的下一个值。
3、mysql和pg在delete之后插入是同样的,但是truncate操作在pg上是清空了表数据,但是没有清空对应的序列,所以在执行truncate之后,再次插入会获取者对应序列的下一个值,而在mysql上是从1开始。
4、达到规定最大值之后都不能继续插入,所以不能循环使用。
备注:结论是完全参考[PostgreSQL中文社区]微信公众号,本文是记录验证原文结论实验步骤,仅供学习
2022-07-16
mengvlog 阅读 140 次 更新于 2025-10-31 00:36:23 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部