【发布时间】:2018-10-05 00:40:26
【问题描述】:
我有users 表和posts 表。一个用户有很多帖子。
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(10));
CREATE TABLE posts (id INT, user_id INT, text TEXT, PRIMARY KEY(id, user_id));
我的问题是,如何创建自动递增机制来递增用户帖子的id,但仅限于用户(user_id)。
例如,
用户1 有2 个帖子,第一个帖子的ID 为1,第二个帖子的ID 为2。
用户2有3个帖子,第一个帖子的id是1,第二个帖子的id是2,第三个帖子的id是3。
posts 表的行将如下所示。
SELECT * FROM posts;
user_id id text
1 1 'Post one from user 1'
2 1 'Post one from user 2'
2 2 'Post two from user 2'
2 3 'Post three from user 2'
1 2 'Post two from user 1'
我知道这可以通过在两次访问数据库的应用程序级别上实现它来完成,例如查询特定用户的最后一个帖子 ID 并基于该 ID 创建帖子。但这会在多用户环境中引入冲突。
【问题讨论】:
标签: sql postgresql