我想实现以下目标:
ID | Counter ------------ 0 | 343 1 | 8344
现在说我要更新ID 1的计数器,,,最简单的方法是什么?我使用序列吗?我只是读取值并更新?它有什么特殊类型吗?
我正在考虑使用序列,但后来我必须为每个ID创建一个(可能超过1000.我也将面临我不知道需要多少序列的问题所以我必须检查是否有一个ID和等等的序列...我不想要那个.
假设这些数字是属于某个组的用户,那么我想到的另一种选择是为每个计数输入一行,当我想要获取数字时,我会通过id或者某事执行选择组并得到数字行.
编辑:澄清我收到一个csv中的用户列表,我的程序每天处理几次(新的csv一天几次).然后,根据用户今天是否已发送消息(例如),我增加该用户所属组的计数器.现在在某一点上我想要提取组(可以是动态的,它取决于我在白天得到的)并获得我增加的数字并重置它.希望这更能解释它:D
感谢您的帮助到目前为止,我将进行实验:D
你怎么看?
这似乎很简单.
增量
UPDATE Table SET Counter = Counter + 1 WHERE ID = 1
重启
UPDATE Table SET Counter = 0 WHERE ID = 1
UPDATE表SET计数器=计数器+ 1 WHERE ID =:ID;
(其中'Table'当然是带有计数器的表,参数':ID'是计数器的id)
序列主要用于顺序自动生成ID值,并且可以有间隙.上面的update语句是原子的,因为update是一个原子操作.但是,如果您之后发出选择权,则表示计数器仍然是相同的值.如果你想要,你需要序列,但是你有可能存在差距.
因此,这里的回答者可能有必要知道计数器的用途是什么.