从PostgreSQL读取仅附加列表

从PostgreSQL读取仅附加列表,postgresql,Postgresql,我想在PostgreSQL中实现一个只附加的列表。基本上,这很简单:创建一个表,并且只在该表中插入 但是,我希望能够按照创建顺序再次阅读该列表。我该怎么做?一个简单的SELECT*fromMyTable就足够了吗?如果没有,我应该按什么排序?您可以使用数据类型创建列(类似于自动递增/顺序): 关系数据库中的行没有固有的排序顺序。获得保证排序顺序的唯一方法是使用的顺序 您可以创建一个在每次插入时递增的标识列,或者创建一个记录行插入的精确时间的时间戳列(或者同时执行这两项操作) e、 g 然后将该列

我想在PostgreSQL中实现一个只附加的列表。基本上,这很简单:创建一个表,并且只在该表中插入


但是,我希望能够按照创建顺序再次阅读该列表。我该怎么做?一个简单的
SELECT*fromMyTable
就足够了吗?如果没有,我应该按什么排序?

您可以使用数据类型创建列(类似于自动递增/顺序):


关系数据库中的行没有固有的排序顺序。获得保证排序顺序的唯一方法是使用
的顺序

您可以创建一个在每次插入时递增的标识列,或者创建一个记录行插入的精确时间的
时间戳
列(或者同时执行这两项操作)

e、 g


然后将该列用于订购人。如果以完全相同的微秒插入两行,则在按时间戳排序时,您可以将
id
列用作平局断路器

SERIAL
的问题在于它在幕后使用了
序列
,这不是交易的一部分,因此可能导致编号上的差距(我希望避免这种情况)。@GoloRoden你为什么害怕差距,一旦你只需要建立一个订单?因为我只需要这个订单被过分简化了@GoloRoden Stil,你可以使用这个专栏进行订购。即使你可以在同一台机器上使用两个序列table@GoloRoden
CREATE TABLE myTable(id SERIAL, ...)

SELECT * FROM myTable ORDER BY id;
create table append_only
(
   id bigint generated always as identity, 
   ... other columns ...
   created_at timestamp default clock_timestamp()
);