我对postgreSQL非常陌生,我希望将字段增加1或减少1(类似于FieldValue.increment(1) )
场景:假设post(表中的列)的值为10,而5个用户试图同时增加1。我希望更新后的post值为15,而不是11。如何使用postgreSQL完成此操作?
技术栈: PostgreSQL Express NodeJS的反应
提前谢谢。
发布于 2021-08-29 15:48:02
你想知道谁喜欢什么对吧?否则,有些人可能会“喜欢”两次,或者“不像”他们从来不喜欢的东西。
所以,像这样的人一样,有一张桌子可以储存在这样的岗位上:
CREATE TABLE likes (
person_id bigint REFERENCES persons NOT NULL,
post_id bigint REFERENCES posts NOT NULL,
PRIMARY KEY (person_id, post_id)
);
CREATE INDEX ON likes (post_id);每个“喜欢”都是这个表中的一个条目。
主要的关键是保证没有人能够“喜欢”同一个帖子不止一次,并且索引使得能够快速找到所有喜欢某个帖子的人。
关系数据库的事务保证将确保即使两个人同时插入一行,其中只有一个会成功。
您可以找到如下所需的计数:
SELECT count(*)
FROM likes
WHERE post_id = 12345;https://stackoverflow.com/questions/68974463
复制相似问题