当前位置:  开发笔记 > 编程语言 > 正文

在postgresql中:如何创建一个可以重置的简单计数器?

如何解决《在postgresql中:如何创建一个可以重置的简单计数器?》经验,为你挑选了2个好方法。

我想实现以下目标:

ID | Counter
------------
 0 | 343
 1 | 8344

现在说我要更新ID 1的计数器,,,最简单的方法是什么?我使用序列吗?我只是读取值并更新?它有什么特殊类型吗?

我正在考虑使用序列,但后来我必须为每个ID创建一个(可能超过1000.我也将面临我不知道需要多少序列的问题所以我必须检查是否有一个ID和等等的序列...我不想要那个.

假设这些数字是属于某个组的用户,那么我想到的另一种选择是为每个计数输入一行,当我想要获取数字时,我会通过id或者某事执行选择组并得到数字行.

编辑:澄清我收到一个csv中的用户列表,我的程序每天处理几次(新的csv一天几次).然后,根据用户今天是否已发送消息(例如),我增加该用户所属组的计数器.现在在某一点上我想要提取组(可以是动态的,它取决于我在白天得到的)并获得我增加的数字并重置它.希望这更能解释它:D

感谢您的帮助到目前为止,我将进行实验:D

你怎么看?



1> Jonathan Lon..:

这似乎很简单.

增量

UPDATE Table SET Counter = Counter + 1 WHERE ID = 1

重启

UPDATE Table SET Counter = 0 WHERE ID = 1



2> Frans Bouma..:

UPDATE表SET计数器=计数器+ 1 WHERE ID =:ID;

(其中'Table'当然是带有计数器的表,参数':ID'是计数器的id)

序列主要用于顺序自动生成ID值,并且可以有间隙.上面的update语句是原子的,因为update是一个原子操作.但是,如果您之后发出选择权,则表示计数器仍然是相同的值.如果你想要,你需要序列,但是你有可能存在差距.

因此,这里的回答者可能有必要知道计数器的用途是什么.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有