내가 실행하고 싶었던 쿼리

insert into board (seq, title, writer, content) 
values((select nvl(max(seq), 0)+1 from board),'안녕','안녕','안녕');

 

최종 수정/실행쿼리

insert into board (seq, title, writer, content) 
select coalesce(max(seq),0)+1 ,'안녕','안녕','안녕' from board;

 

** 알게된점

#1. mysql에는 nvl함수 없음
 coalesce(expr1,expr2)
  == CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

 또는 isnull함수를 사용

 

#2. mysql에는 insert 의 values구문안에 select를 사용할 수 없음

최종 쿼리처럼 insert into 테이블명(속성) values(속성값) 가아닌,

insert into 테이블명(속성) select ~~ (속성값) from 테이블명 형식으로 써주어야 함

 

#3. 게시판 시퀀스번호 자동부여

max(seq)+1
 // 기존 seq의 최댓값 구하고 +1

+ Recent posts