首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >邮政分拣优化

邮政分拣优化
EN

Database Administration用户
提问于 2018-02-01 01:21:05
回答 1查看 102关注 0票数 0

我正在寻找一种在插入时排序表条目的方法,而不是抓取。如果这是不可能的,是否有一种方法可以使主键有一个自动增量?(也就是说,如果id是主要的,则ai将从插入的每个不同的id从0开始递增)

示例:

代码语言:javascript
复制
id | ai
---+---
 0 | 0
 0 | 1
 0 | 2
 1 | 0
 1 | 1
 1 | 2
 1 | 3
EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-02-01 03:46:03

简短的回答:不,和是,分别。

SQL数据库确实按某种顺序存储数据;无论是通过分配,还是(当表上有聚集索引时)按群集键存储数据。

但是,执行查询的过程并不保证数据将按照存储的顺序返回。要保证数据的顺序,必须在ORDER BY语句中使用SELECT子句。

是的,您可以在PostgreSQL中创建一个自动递增的ID值.虽然这通常用于创建作为主键的代理键,但如果您愿意的话,它似乎可以仅用于创建唯一的列。

对这个问题的公认的答案应该给你你需要的东西。您可以使用序列,也可以使用SERIAL伪数据类型(它在幕后为您创建序列)。有关序列的更多详细信息,请查看文档以获得您的版本。

(我相信SERIAL很可能从1开始,而不是0--您可能需要自己设置序列才能获得特定的起点)

注意:这个答案是PostgreSQL的标记版本,9.4。从第10版开始,PostgreSQL现在有一种类似于甲骨文或DB2的身份列机制,根据SQL:2003 & SQL:2008标准(feature # T174)。请参阅GENERATED ... FOR IDENTITY 这里的文档。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/196781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档