SQL
1create table tbl(user_id int ,task_id int ,unique (user_id,task_id));
2insert into tbl values(@a:=1001,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
3insert into tbl values(@a:=1001,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
4insert into tbl values(@a:=1001,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
5insert into tbl values(@a:=1002,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
6insert into tbl values(@a:=1002,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
7insert into tbl values(@a:=1002,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
8insert into tbl values(@a:=1002,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
9insert into tbl values(@a:=1002,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=@a) as tmp));
これをprocedureに落とし込むと
SQL
1drop procedure if exists add_user_id;
2delimiter //
3create procedure add_user_id(IN in_user_id int )
4begin
5insert into tbl values(in_user_id,(select * from (select coalesce(max(task_id),0)+1 from tbl where user_id=in_user_id) as tmp));
6end
7//
追加
SQL
1call add_user_id(1003);
2call add_user_id(1003);
3call add_user_id(1003);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/04 10:41