私はこの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列を123 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.