我有这个 mysql 表是这样构建的:
CREATE TABLE `posts` (
`post_id` INT(10) NOT NULL AUTO_INCREMENT,
`post_user_id` INT(10) NOT NULL DEFAULT '0',
`gen_id` INT(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`post_user_id`, `post_id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
当我做:
insert into posts (post_user_id) values (1);
insert into posts (post_user_id) values (1);
insert into posts (post_user_id) values (2);
insert into posts (post_user_id) values (1);
select * from posts;
我得到:
post_id | post_user_id | gen_id
1 1 0
2 1 0
1 2 0
3 1 0
为每个唯一用户生成唯一的 post_id。
我需要 gen_id 列是 1 2 3 4 5 6 等。我如何在插入时增加此列。我尝试了下面的一个,但它不起作用。这样做的正确方法是什么?
insert into posts (post_user_id,gen_id) values (1,select max(gen_id)+1 from posts);
//Select the highest gen_id and add 1 to it.