なんか無駄
SQL
1create table question_answer (USER_ID int not null,QUESTION_ID int not null unique key);
に対して、こうすればいいですが
SQL
1insert into question_answer (USER_ID,QUESTION_ID) values
2(1,coalesce((select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub),0)+1),
3(1,coalesce((select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub),0)+1),
4(2,coalesce((select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub),0)+1),
5(1,coalesce((select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub),0)+1);
2個目以降のデータは必ず max(QUESTION_ID)が1以上になるんですよね?
であれば
SQL
1/* truncate question_answer;*/
2insert into question_answer (USER_ID,QUESTION_ID) values
3(1,coalesce((select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub),0)+1),
4(1,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1),
5(2,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1),
6(1,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1);
しかも max(QUESTION_ID)がnullになるのは一番最初のデータを投入するときだけなのですから
最初だけダミーデータを投入しておけば済む話
SQL
1/* truncate question_answer;*/
2insert into question_answer (USER_ID,QUESTION_ID) values (9999,0);
3insert into question_answer (USER_ID,QUESTION_ID) values
4(1,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1),
5(1,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1),
6(2,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1),
7(1,(select max_uid from (select max(QUESTION_ID) as max_uid from question_answer) as sub)+1);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/15 14:19