DB
-
트랜젝션 :: 프로시져 활용DB/MySQL 2020. 7. 6. 10:40
MySQL 의 단점 중하나는 Commit 과 RollBack 인 것 같다. 기본적으로 Transaction ( 절차 ) 관련 기능이 부재하여 이를 Procedure를 구성하여 대체할 수 있다. Procedure ( 함수 ) 의 장점은 오류가 발생할 경우, 모든 작업은 RollBack 할 수 있다. 그렇다면, 여기서 Error를 Catch 하는 방법이 가장중요하다. Procedure 를 Call 할 때의 Params 오류는 코드작성 시 별도로 확인해주어야하지만, Procedure의 내부에서 발생한 오류는 SQLEXCEPTION 의 핸들러를 활용하여 기록할 수 있다. 코드는 아래의 목적을 표현하기위해 작성되었다. 1. Error Logging 2. Json Parsing 3. Transaction 4. Re..
-
MySQL Dump :: 버전경고DB/MySQL 2020. 6. 29. 14:10
MySQL Workbench 에서 Data Export 할 경우에 보여주는 경고문이다. Workbench 의 기본설정 Dump 는 해당버전을 사용한다. 그렇기에 Export 할 서버의 MySQL 버전과 다를 경우 발생하는 경고문이다. 가볍게 생각할 수도 있지만, 5.6 -> 5.7 -> 8.x 등 버전별로 스키마를 재작성해야할 경우도 있다. 자신이 생각하지 못하는 이슈가 발생할 수 있는 부분이여서 Dump를 해당 Server 의 버전으로 변경해주는 것이 옳다. 변경 방법은 간단하다. Dump 는 Client Tool 이기에 만약 해당버전의 Server를 로컬에 설치했을 경우, 실행파일로 같이 설치되어있다. 설정법은 Edit > Preference > Administration > Dump path 에 해..
-
DML :: INSERTDB/MySQL 2020. 6. 16. 17:43
= 데이터입력 상황별 유형 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_name [, partition_name] ...)] [(col_name [, col_name] ...)] { {VALUES | VALUE} (value_list) [, (value_list)] ... | VALUES row_constructor_list } [AS row_alias[(col_alias [, col_alias] ...)]] [ON DUPLICATE KEY UPDATE assignment_list] INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE..
-
조건인출 :: ColumnDB/MySQL 2020. 6. 16. 13:52
= Select 를 이용한 인출에서 컬럼에 조건식을 부여하는 방법 1. Case Statement 단일/복합 조건인출에 사용되는 구문이다. 사용방법은 인출할 컬럼부분에 작성되며, 컬럼의 내용을 목적에 따라 커스텀할 수 있고 SubQuery 를 이용하여 조건을 확장할 수 있다. 단, From 부분에는 사용할 수 없다. 예를 들어 타입별 테이블을 불러올수 없다. 만약 타입별 분류된 테이블에서 동시인출을 시도하려면 개별인출 후 Union 하는 방법으로 대체할 수 있다. 다음은 작성법이다. 1-1. 단일 조건 ( A is B or not ) CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [E..
-