내가 실행하고 싶었던 쿼리
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
'IT > SQL' 카테고리의 다른 글
[PostgrdSQL] WITH AS / CTE (0) | 2021.12.27 |
---|---|
[PostgreSQL] 마지막 한달이내 접속일자 (0) | 2021.12.27 |
[PostgreSQL] 월별,시간별 데이터 집계 (0) | 2021.12.27 |
[PostgreSQL] [limit] 분할 삭제,분할 업데이트 (0) | 2021.12.27 |
[PostgreSQL] row_number() 행번호 (0) | 2021.12.27 |