반응형

쿼리 4

[SQL] 에러해결 (ERROR: cannot insert a non-DEFAULT value into column "col1"Detail: Column "col1" is a generated column.)

[SQL] 에러해결 (ERROR: cannot insert a non-DEFAULT value into column "col1"Detail: Column "col1" is a generated column.) [에러 발생] INSERT 쿼리 작성 시 아래와 같은 에러가 떴다. ERROR: cannot insert a non-DEFAULT value into column "col1" Detail: Column "col1" is a generated column. [에러 원인] 확인해보니 테이블 생성시 컬럼 col1에 CASE WHEN문을 집어넣어 default 값을 만들어 놨었다. CREATE TABLE 스키마명.테이블명 ( --생략 , col1 VARCHAR (5) DEFAULT CASE WHEN (le..

SQL 2022.08.17

[SQL] "BETWEEN 날짜 AND 날짜" 경계값 조회 안 되는 경우 (MyBatis)

[SQL] "BETWEEN 날짜 AND 날짜" 경계값 조회 안 되는 경우 (MyBatis) Mybatis로 if문을 걸어서 sql 조회시 BETWEEN 조건으로 날짜 검색을 하는 경우 경곗값이 검색되지 않았다. AND date BETWEEN #{startDate} AND #{endDdate} startDate에 2022년 1월 1일을 넣고, endDate에 2022년 1월 31일을 넣는 경우 1월 1일 데이터와, 1월 31일 데이터는 검색되지 않았다. 2022년 1월 1일부터 2022년 1월 1일까지 검색하는 경우라면 1월 1일 데이터가 나오길 기대했지만 아무 것도 검색되지 않았다. AND date BETWEEN TO_DATE(#{startDate}) AND TO_DATE(#{endDdate}) 이는 엔..

SQL 2022.08.10

[PostgreSQL] insert시 seq 최댓값 + 1로 자동증가 입력 (MAX값 +1)

[PostgreSQL] insert시 seq 최댓값 + 1로 자동증가 입력 (MAX값 +1) PostgreSQL EDB는 Oracle과 호환되는 문법이 많다. PostgreSQL에서 insert시 seq 값을 최댓값 + 1로 자동증가 되게끔 입력하고 싶다면 아래 쿼리를 이용하면 된다. INSERT INTO 스키마명.테이블명 ( 컬럼명 ) VALUES ( (SELECT NVL(MAX(컬럼명), 10000000000) + 1 AS 컬럼명 FROM 스키마명.테이블명) ) 문법은 오라클 문법과 동일한데, 이는 PostgreSQL EDB에서는 동작한다. 위의 경우 insert되는 컬럼 값이 백억(10,000,000,000)이 넘을 가능성이 없기 때문에 충분히 큰 수인 백억으로 설정해둔 것이다. 이 경우 백억부터 ..

SQL 2022.07.13

[SQL] mybatis 쿼리 select문 예시 (PostgreSQL)

[SQL] mybatis query select문 예시 (PostgreSQL) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT t1.mmbr_id /* 회원아이디 */ , t1.mmbr_num /* 회원번호 */ , decode(t1.push_rcms_agrm_ysno, 'Y', '동의', '미동의') AS push_rcms_agrm_ysno /* 푸시수신동의여부 */ , to_char(t1.amnd_dttm, 'YYYY-MM-DD') AS amnd_ymd /* 수정일시 */ FROM 스키마명.테이블명 t1 WHERE 1=1 AND t1.mmbr_id = #{mmbrId} /* 회원아이디 - 검색 조건 1 */ AND t1.mmbr_num = #{mmbrNum} /* 회원번호 - ..

SQL 2022.01.26
반응형