如何在PostgreSQL中以交易方式插入max(order_field)+1的记录[英] How insert rows with max(order_field) + 1 transactionally in PostgreSQL

本文是小编为大家收集整理的关于如何在PostgreSQL中以交易方式插入max(order_field)+1的记录的处理方法,想解了如何在PostgreSQL中以交易方式插入max(order_field)+1的记录的问题怎么解决?如何在PostgreSQL中以交易方式插入max(order_field)+1的记录问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我需要在 PostgreSQL 表中插入一行,其中一列包含该表行子集上同一列的最大值 + 1.该列用于对该子集中的行进行排序.

我正在尝试更新插入后触发器中的列值,但我在不同行中获取此列的重复值.

在短时间内进行大量插入的并发环境中,避免子集中的排序列出现重复值的最佳方法是什么?

提前致谢

编辑:子集由同一张表的另一列定义:该列对所有相关行具有相同的值.

推荐答案

如果该列仅用于排序,则使用序列:

create table t (
    column1 integer,
    ordering_column serial
);

http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-NUMERIC-TABLE

本文地址:https://www.itbaoku.cn/post/1763982.html