일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jsp
- it
- tool
- Design Patterns
- JVM
- Spring Batch
- 요리
- IntelliJ
- Spring Boot
- Web Server
- javascript
- laravel
- php
- 맛집
- MySQL
- db
- ReactJS
- Git
- linux
- AWS
- java
- elasticsearch
- Spring
- springboot
- ubuntu
- devops
- Oracle
- jenkins
- Gradle
- redis
- Today
- Total
목록MySQL (25)
아무거나
hierarchy 구조에서 recursive 쿼리의 사용 Desc hierarchy: 계층 recursive: 재귀 Example hierarchy 구조의 샘플 데이터 생성 CREATE TABLE recursive_test_table ( id INTEGER NOT NULL, name VARCHAR(128) NULL, parent_id INTEGER NULL, CONSTRAINT pk_recursive PRIMARY KEY (id) ); INSERT INTO recursive_test_table (id, name, parent_id) VALUES (1, '봉근', NULL); INSERT INTO recursive_test_table (id, name, parent_id) VALUES (2, '봉근 A',..
UPSERT(INSERT ON DUPLICATE KEY UPDATE): 동일한 key값이 존재한다면 UPDATE를 하고 존재하지 않는다면 INSERT를 한다. (단, INSERT 구문이므로 AUTO_INCREMENT 값은 증가한다) Table Sample Data Example Code // UNIQUE 값: login_id // login_id인 jbk값이 존재하므로 아래 코드는 update가 실행된다. INSERT INTO user (active, login_id, user_name, `password`) VALUES (3, 'jbk', 'insert_name', 'insert_$2a$10$2Rbln4H8JGnnQnqKwvNBEAlX6') ON DUPLICATE KEY UPDATE active=4, ..
JSON (Json을 지원하는 데이터 타입은 MySQL 5.7.8부터 사용이 가능하다. 해당 포스팅은 VARCHAR에 데이터는 JSON STRING형태의 예제이다. 즉, JSON 데이터 타입 고려안하고 작업) 조회 필드 속성이 VARCHAR에 데이터는 JSON형태 일 때 조회 방법 [필드 속성] `vendor_category_info` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL; [조회 쿼리] SELECT vendor_category_info , JSON_UNQUOTE( JSON_EXTRACT(vendor_category_info, '$.depth1') ) AS VENDOR_DEPTH1 , JSON_UNQUOTE( JSON_EXTRACT(vendor_categ..
Mysql에서 DB에 Multi Values를 통하여 여러 row를 한 번에 insert 하는 방식을 사용하였다. (Mysql에서는 Bulk Insert라고도 불린다) * Bulk Insert : 3개의 row가 기본적으로 하나의 transaction에서 처리가 된다. 즉, 3개 중 하나라도 필수값을 지키지 않는다거나 하는 경우 모두 rollback이 됨을 의미한다. 그러나 애플리케이션에서 다량의 Values를 생성하여 DB로 질의를 전달할때 DB측에서 받아들일 수 있는 Packet 제한이 있어에러가 발생한다. [error example]### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (30321018 > 167..
작업을 하는 도중에 카테고리 코드를 조회하는 쿼리가 있었다. 성능 이슈로 인하여 해당 코드의 collation은 latin이였고 관리자 시스템쪽에는 전체필터를 주었을때 해당 코드컬럼에 대한 필터도 거치므로 한글조회를 할 시 오류가 검출되었다. 그래서 쿼리에서 직접 convert하여 조회하는 부분으로 수정하였다. [ex] As-is OR master_code = #{param.allSearch} To-be OR master_code = CONVERT(#{param.allSearch} USING utf8) 위와 같이 Converting하여 조회를 하면 된다.