DB 6

[MySQL] Error : Expression #1 of SELECT list is not in GROUP BY...

Error Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tp.menu.menu_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 원인 select 목록, having 조건 또는 order by 목록이 group by 절에 이름이 지정되지 않았거나 GROUP BY column에 primary key나 unique key 처럼 고유하게 존재하여 집계되지 않는 column을 참조하면 쿼리를 거..

DB/MySQL 2023.03.14

[MySQL] SQL_MODE

SQL_MODE MySQL서버의 시스템 변수 각 클라이언트마다 다른 sql 모드를 적용이 가능 조회 방법 SHOW VARIABLES LIKE 'SQL_MODE'; (출력) 설정 방법 SET GLOBAL sql_mode = ‘modes’; SET SESSION sql_mode = ‘modes’; - ONLY_FULL_GROUP_BY select 목록, having 조건 또는 order by 목록이 group by 절에 이름이 지정되지 않았거나 GROPU BY column에 primary key나 unique key 처럼 고유하게 존재하여 집계되지 않는 column을 참조하면 쿼리를 거부함 (MySQL 5.7에서부터 기본적으로 활성화 됨) - STRICT_TRANS_TABLES 트랜잭션 스토리지 엔진에 대해..

DB/MySQL 2023.03.14

[MyBatis] Foreach

[ MyBatis ] foreach - collection : 전달받은 인자. List or Array 형태만 가능 - item : 전달받은 인자 값을 alias 명으로 대체 - open : 구문이 시작될때 삽입할 문자열 - close : 구문이 종료될때 삽입할 문자열 - separator : 반복 되는 사이에 출력할 문자열 - index : 반복되는 구문 번호이다. 0부터 순차적으로 증가 #{selectId} * MyBatis로 업데이트 되면서 foreach로 변경됨 [ iBatis ] iterate INSERT 나 SELECT에서 반복되는 부분을 한번에 처리하고자 할때 사용 - property : 파라미터명 - prepend : 쿼리로 쓰일 문자 - open : 구문이 시작될때 삽입할 문자열 - cl..

DB/MyBatis 2023.01.26

[H2 Database] H2 Database Engine

H2 Database Engine - 자바로 작성된 관계형 데이터베이스 관리 시스템 - 자바 애플리케이션에 임베드하거나 클라이언트-서버에서 구동가능 - 메모리에 데이터를 저장하는 인메모리 데이터베이스 기능을 제공되고, 애플리케이션이 종료되면 데이터베이스에 저장된 데이터가 삭제됨 - 가볍고 빨라 테스트용으로 많이 사용함 특징 - SQL 표준의 일부가 지원됨 - 매우 빠른 오픈소스, JDBC API - 임베디드 및 서버 모드, 메모리 내 데이터베이스 - 브라우저 기반 콘솔 애플리케이션 - 2.5MB 크기의 jar파일로 작은 설치공간 - JDBC 드라이버 클래스 사용 : org.h2.Driver 지원 플랫폼 - JAVA로 작성되어 다양한 플랫폼에서 실행이 가능함 - JAVA8, 11에서 테스트 - 모든 운영체..

DB/Database 2023.01.17