MariaDB/SQL 4

[에러] Incorrect datetime value: ''

[테스트 환경] OS : CentOS7 64bit DB : MariaDB 10.1.12 1. Error 내용 - SELECT INSERT 쿼리에서 다음과 같은 에러 발생 Incorrect datetime value: '' [특이 사항] - 기존에 에러 없이 실행되던 쿼리가 어느 순간부터 실행이 안됨. - 동일한 환경인 다른 서버에서 실행했을 때 정상적으로 실행 됨. 2. 해결 방안 - 쿼리 내의 암묵적인 형변환이 발생하는지 확인 - VARCHAR 타입을 DATE 타입으로 암묵적인 형 변환을 발생시키는데 여기서 ''을 리턴하는 것으로 예상 - 명시적으로 형변환을 할 수 있도록 쿼리 변경 [변경 전] AND [VARCHAR 타입인 컬럼]

MariaDB/SQL 2017.08.02

Foreign Key 생성 시 Index 생성

[문제점]MariaDB에서는 FK 생성 시에 참조 키를 빠르게 확인하고 테이블 스캔을 하지 않으려고 인덱스를 생성함. [테스트]1. 스크립트 CREATE DATABASE ADB_TEST ; -- ADS_기업 CREATE TABLE `ADB_TEST`.`ADS_CO` ( `CO_NO` DECIMAL(9) NOT NULL, -- 기업번호 `CO_NM` VARCHAR(100) NULL, -- 기업명 `HDOF_ADDR` VARCHAR(500) NOT NULL, -- 본사주소 `DLG_TEL_NO` VARCHAR(20) NULL, -- 대표전화번호 `DLG_DRTR_NM` VARCHAR(100) NOT NULL, -- 대표이사명 `ESTB_DT` VARCHAR(8) NULL, -- 설립일자 `SALES_AMT`..

MariaDB/SQL 2017.06.02

[MariaDB][SQL]사용자변수를 활용한 DENSE_RANK 분석함수 작성

[테스트 환경] - Windows 7 - MariaDB 10.1.12 1.DENSE_RANK 분석함수 구현하기 - MariaDB(mysql)의 사용자변수를 활용하여 Oracle의 DENSE_RANK분석함수와 동일한 쿼리를 작성 한다. 기존의 사용자변수와 조금 다르게 활용한 것은 SET 사용자변수를 선언하지 않고, 테이블 안쪽에서 사용자변수를 선언하여 쿼리가 수행 될 때마다 사용자변수를 초기화 할 수 있는 장점이 있다. 1.1 테이블 스크립트 CREATE TABLE DA_USER_INFO ( USER_GRP_ID_ID VARCHAR(10) COMMENT '사용자그룹ID', USER_NO BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '사용자번호', USER_SA..

MariaDB/SQL 2017.03.09

[MariaDB]TIMEDIFF 함수를 활용한 시간 계산 SQL

[테스트 환경] - Linux CentOs7 - MariaDB 10.1.12 1. TIMEIDFF,TIME_FORMAT 함수 - TIMEDIFF : 두 개의 시간 값의 차를 계산하여 년월일시분초로 값을 리턴해 주는 함수 - TIME_FORMAT : 시간 값을 원하는 유형으로 포맷을 변경해주는 함수 2. 실습 예제 - 로그인하여 접속을 유지한 시간의 값을 알고 싶을 때 위의 두개의 함수를 사용하여 값을 출력 한다. /*로그인_로그아웃 테이블 생성 */ CREATE TABLE DA_LOGIN_LOGOUT_TB ( LOGIN_LOGOUT_SEQ_NO int(9) NULL , DA_LOGIN_DATE datetime NULL, DA_LOGOUT_DATE datetime NULL, DA_DATE_UNIT varc..

MariaDB/SQL 2017.02.17