有些人不喜欢Oracle上的序列.为什么?我认为它们非常易于使用且非常好用.您可以在选择,插入,更新,...中使用它们
概括起来讲,我喜欢序列,但我想对列的自动增量关键字,甚至更多.
因为DBA迁移数据库,移动所有对象和数据,并且错误地重新创建序列,我被咬了好几次,从0重新启动它.欢闹随之而来......
序列也可以在RAC上抛出一个循环,除非你指定你希望它们严格增加,你将从中获得唯一的数字 - 但不一定是严格增加的顺序(这是因为为了避免相互 - 每个sequence.nextval调用的节点通信,每个节点获得一个单独的小片即将到来的数字).对各种"select max(sequence_id)"查询造成严重破坏.
哦,自动增量关键字很好,但这只是语法糖 - 另外两个问题是相当严重的"陷阱".
我不.我应该指出,有时人们讨厌他们不理解的东西.
序列对于生成唯一ID非常重要.从概念上讲,拥有一种生成不依赖于表内容的ID的方法很有用.您无需锁定表格即可生成唯一编号.
序列也可用于在需要唯一的多个表上生成密钥.例如,如果我有一个新项目进入系统并且我想一次在一个表中放入一行,我可以从序列中获取ID,当我插入任意数量的表时重用它.正确完成,我知道ID不会与表中已有的值冲突,并且每行将具有相同的ID.
我认为这些事情也可以通过自动增量列来实现.