SELECT @now := DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y%m%d%H%i%s')
     , @admin := '0000000000'
     , @orgID := '00000'
     , @institute := '0000000'
     , @deptCd := '0000000'
     , @password := 'T8grJq7LR9KGjE7741gXMqPny8xsLvsyBiwIFwoF7rg=' -- 1
;

/*
-- 설정 (xit-foundation)
CREATE OR REPLACE TABLE TB_CONFIG (
	CNF_ID     VARCHAR(13)  NOT NULL COMMENT '설정 ID(YYYYMMDD + 5자리 순번)',
	OWNER_ID   VARCHAR(64)  NOT NULL COMMENT '설정소유자 ID',
	OWNER_TYPE VARCHAR(32)  COMMENT '설정소유자 유형',
	CNF_KEY    VARCHAR(64)  NOT NULL COMMENT '설정 키',
	CNF_VAL    VARCHAR(512) NOT NULL COMMENT '설정 값',
	REG_DT     VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	RGTR       VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	USE_YN     VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부(Y:사용 , N:사용하지 않음)',
	PRIMARY KEY (CNF_ID),
	INDEX (ONWER_ID, CNF_KEY)
) COMMENT = '설정';
*/

-- 사용자 (xit-user)
CREATE OR REPLACE TABLE TB_USER (
	USER_ID     VARCHAR(20)  NOT NULL COMMENT '사용자 ID',
	USER_ACNT   VARCHAR(20)  NOT NULL COMMENT '사용자 계정',
	USER_NM     VARCHAR(50)  NOT NULL COMMENT '사용자 이름',
	PASSWD      VARCHAR(200) NOT NULL COMMENT '비밀번호',
	PASSWD_HINT VARCHAR(100) COMMENT '비밀번호 힌트',
	PASSWD_NSR  VARCHAR(100) COMMENT '비밀번호 힌트 답',
	EMP_NO      VARCHAR(20)  COMMENT '사원번호',
	RSDNT_NO    VARCHAR(200) COMMENT '주민등록번호',
	GENDER      VARCHAR(1)   COMMENT '성별(M:남자, F:여자)',
	BRDT        VARCHAR(20)  COMMENT '생년월일',
	TELNO       VARCHAR(20)  COMMENT '유선 전화번호',
	MBL_TELNO   VARCHAR(20)  COMMENT '무선 전화번호',
	FXNO        VARCHAR(20)  COMMENT '팩스번호',
	ZIP         VARCHAR(6)   COMMENT '우편번호',
	ADDR        VARCHAR(150) COMMENT '주소',
	DADDR       VARCHAR(150) COMMENT '상세주소',
	AREA_NO     VARCHAR(10)  COMMENT '지역번호',
	EML_ADRS    VARCHAR(50)  COMMENT '이메일 주소',
	ORG_ID      VARCHAR(20)  COMMENT '조직 ID',
	GRP_ID      VARCHAR(20)  COMMENT '그룹 ID',
	NSTT_CD     VARCHAR(8)   NOT NULL COMMENT '소속기관 코드',
	DEPT_CD     VARCHAR(7)   COMMENT '부서 코드',
	POS_NM      VARCHAR(60)  COMMENT '직위이름',
	CRTFC_DN    VARCHAR(20)  COMMENT '인증 DN값',
	NTRIS_KEY   VARCHAR(64)  COMMENT '세외수입 사용자키',
	LOCK_YN     VARCHAR(1)   DEFAULT 'N' COMMENT '잠김 여부(Y:잠김, N:잠기지 않음)',
	LOCK_CNT    DECIMAL(2)   DEFAULT 0 NOT NULL COMMENT '잠김 횟수',
	LOCK_DT     VARCHAR(14)  COMMENT '잠김 일자',
	REG_DT      VARCHAR(14)  NOT NULL COMMENT '등록일자',
	RGTR        VARCHAR(10)  NOT NULL COMMENT '등록자 아이디',
	MDFCN_DT    VARCHAR(14)  COMMENT '수정일자',
	MDFR        VARCHAR(10)  COMMENT '수정자 아이디',
	USE_YN      VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용여부(Y:사용, N:사용하지 않음)',
	STTS        VARCHAR(3)   DEFAULT 'A' NOT NULL COMMENT '상태(A:신청, P:승인, D:삭제)',
	PRIMARY KEY (USER_ID),
	INDEX (USER_ACNT)
) COMMENT = '사용자';

INSERT INTO TB_USER (
       USER_ID
     , USER_ACNT
     , USER_NM
     , PASSWD
     , ORG_ID
     , NSTT_CD
     , DEPT_CD
     , REG_DT
     , RGTR
     , MDFCN_DT
     , MDFR
     , USE_YN
) VALUES (
       @admin
     , 'admin'
     , '시스템 관리자'
     , @password
     , @orgID
     , @institute
     , @deptCd
     , @now
     , @admin
     , @now
     , @admin
     , 'Y'
);

/*
INSERT INTO TB_USER (USER_ID, USER_ACNT, USER_NM, PASSWD, EML_ADRS, MBL_TELNO, NSTT_CD, REG_DT, RGTR)
SELECT  LPAD(ROW_NUM, 10, '0') USER_ID
      , CONCAT('user-', LPAD(ROW_NUM, 2, '0')) USER_ACNT
      , USER_NM
	  , @password PASSWD
	  , CONCAT('user-', LPAD(ROW_NUM, 2, '0'), '@xit.co.kr') EML_ADRS
	  , CONCAT('010-', LPAD(ROW_NUM, 4, '0'), '-', LPAD(ROW_NUM, 4, '0')) MBL_PHN_NO
	  , @institute
	  , @now REG_DT
	  , @admin
FROM (
	SELECT (@row_num := @row_num + 1) ROW_NUM, D.*
	FROM (
		SELECT CONCAT(NM1, '', FIRST_NAME) USER_NM
		FROM (
			SELECT '홍' NM1 UNION
			SELECT '청' NM1 UNION
			SELECT '백' NM1 UNION
			SELECT '흑' NM1 UNION
			SELECT '김' NM1 UNION
			SELECT '이' NM1 UNION
			SELECT '박' NM1 UNION
			SELECT '최' NM1 UNION
			SELECT '정' NM1 UNION
			SELECT '강' NM1 UNION
			SELECT '조' NM1 UNION
			SELECT '장' NM1 UNION
			SELECT '임' NM1 UNION
			SELECT '한' NM1 UNION
			SELECT '오' NM1 UNION
			SELECT '서' NM1 UNION
			SELECT '신' NM1
		) A,
		(
			SELECT CONCAT('길', NM3) FIRST_NAME
			FROM (
				SELECT '동' NM3 UNION
				SELECT '서' NM3 UNION
				SELECT '남' NM3 UNION
				SELECT '북' NM3
			) B
		) C
	) D, (SELECT @row_num := 0) E
) Z;
*/

-- 시군구 (xit-user)
CREATE OR REPLACE TABLE TB_SGG (
	SGG_CD          VARCHAR(5)   COMMENT '시군구 코드',
	SGG_NM          VARCHAR(60)  NOT NULL COMMENT '시군구 이름',
	INST_SE_CD      VARCHAR(2)   COMMENT '기관 구분',
	INST_CD         VARCHAR(7)   NOT NULL COMMENT '기관 코드',
	INST_NM         VARCHAR(100) NOT NULL COMMENT '기관 명',
	INST_ADDR       VARCHAR(200) COMMENT '기관 주소',
	INST_DADDR      VARCHAR(200) COMMENT '기관 상세주소',
	INST_ZIP        VARCHAR(6)   COMMENT '기관 우편번호',
	OFFCS_FILE_PATH VARCHAR(200) COMMENT '직인 파일 경로',
	OFFCS_FILE_NM   VARCHAR(100) COMMENT '직인 파일 명',
	USE_YN          VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부',
	REG_DT          VARCHAR(14)  COMMENT '등록 일시',
	RGTR            VARCHAR(10)  COMMENT '등록자',
	MDFCN_DT        VARCHAR(14)  COMMENT '수정 일시',
	MDFR            VARCHAR(10)  COMMENT '수정자',
	PRIMARY KEY (SGG_CD)
) COMMENT = '시군구';

INSERT INTO TB_SGG (
       SGG_CD
     , SGG_NM
     , INST_SE_CD
     , INST_CD
     , INST_NM
     , USE_YN
     , REG_DT
     , RGTR
     , MDFCN_DT
     , MDFR
) VALUES (
       @orgID
     , '시스템'
     , '01'
     , @institute
     , '기본'
     , 'Y'
     , @now
     , @admin
     , @now
     , @admin
);

-- 부서 (xit-user)
CREATE OR REPLACE TABLE TB_DEPT (
	DEPT_CD    VARCHAR(7)   COMMENT '부서 코드',
	SGG_CD     VARCHAR(5)   COMMENT '시군구 코드',
	INST_CD    VARCHAR(7)   COMMENT '기관 코드',
	DEPT_NM    VARCHAR(100) COMMENT '부서 명',
	DEPT_TELNO VARCHAR(20)  COMMENT '부서 전화번호',
	DEPT_FXNO  VARCHAR(20)  COMMENT '부서 팩스번호',
	USE_YN     VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부',
	REG_DT     VARCHAR(14)  COMMENT '등록 일시',
	RGTR       VARCHAR(10)  COMMENT '등록자',
	MDFCN_DT   VARCHAR(14)  COMMENT '수정 일시',
	MDFR       VARCHAR(10)  COMMENT '수정자',
	PRIMARY KEY (DEPT_CD),
	INDEX (SGG_CD, INST_CD)
) COMMENT = '부서';

INSERT INTO TB_DEPT (
       DEPT_CD
     , SGG_CD
     , INST_CD
     , DEPT_NM
     , USE_YN
     , REG_DT
     , RGTR
     , MDFCN_DT
     , MDFR
) VALUES (
       @deptCd
     , @orgID
     , @institute
     , '기본'
     , 'Y'
     , @now
     , @admin
     , @now
     , @admin
);

-- 로그인 정책 (xit-security)
CREATE OR REPLACE TABLE TB_LOGIN_POLICY (
	USER_ID  VARCHAR(20) NOT NULL COMMENT '사용자 ID',
	IP_ADRS  VARCHAR(23) COMMENT 'IP 주소',
	DPLCT_YN VARCHAR(1) DEFAULT 'N' NOT NULL COMMENT '중복접근 허용 여부',
	LIMIT_YN VARCHAR(1) DEFAULT 'N' NOT NULL COMMENT '접근제한 허용 여부',
	REG_DT   VARCHAR(14) NOT NULL COMMENT '등록 일자',
	RGTR     VARCHAR(20) NOT NULL COMMENT '등록자 ID',
	MDFCN_DT VARCHAR(14) COMMENT '수정 일자',
	MDFR     VARCHAR(20) COMMENT '수정자 ID',
	PRIMARY KEY (USER_ID)
) COMMENT = '로그인 정책';

-- 권한 (xit-security) 
CREATE OR REPLACE TABLE TB_AUTHORITY (
	AUTH_ID VARCHAR(50) NOT NULL COMMENT '권한 ID',
	AUTH_NM VARCHAR(60) NOT NULL COMMENT '권한 이름',
	DSCRP VARCHAR(200) COMMENT '설명',
	-- 접근할 수 있는 업무정보 범위
	-- ALL - 모든 업무정보
	-- ORG - 소속 조직의 업무 정보
	-- ORG-SUB - 소속 조직/하위 조직의 업무 정보
	-- SELF - 사용자가 작성한 정보
	INF_SCP VARCHAR(20) COMMENT '업무정보 범위',
	-- 접근할 수 있는 사용자 정보 범위
	-- ALL - 모든 사용자 정보
	-- ORG - 소속 조직의 사용자 정보
	-- ORG-SUB - 소속 조직/하위 조직의 사용자 정보
	-- SELF - 사용자 자신 정보
	USER_INF_SCP VARCHAR(20) COMMENT '사용자정보 범위',
	REG_DT VARCHAR(14) NOT NULL COMMENT '등록 일자',
	PRIMARY KEY (AUTH_ID)
) COMMENT = '권한';

-- 권한별 기능그룹 (xit-security)
CREATE OR REPLACE TABLE TB_AUTH_ACTION (
	AUTH_ID VARCHAR(50) NOT NULL COMMENT '권한 ID',
	GRP_ID  VARCHAR(50) NOT NULL COMMENT '기능 그룹 ID',
	REG_DT  VARCHAR(14) COMMENT '등록 일자',
	PRIMARY KEY (AUTH_ID, GRP_ID)
) COMMENT = '권한-사용자';

INSERT INTO TB_AUTH_ACTION (AUTH_ID, GRP_ID, REG_DT)
SELECT 'ROLE_ANONYMOUS' AUTH_ID, 'anonymousAction' GRP_ID, @now UNION
SELECT 'ROLE_USER' AUTH_ID, 'userAction' GRP_ID, @now;

-- 권한-사용자 (xit-security)
CREATE OR REPLACE TABLE TB_AUTH_USER (
	AUTH_ID VARCHAR(50) NOT NULL COMMENT '권한 ID',
	-- 00 - 일반 사용자
	-- XX - 일반 사용자 외의 다른 유형은 프로그램에서 정의
	USER_ID VARCHAR(20) NOT NULL COMMENT '사용자 ID',
	REG_DT  VARCHAR(14) COMMENT '등록 일자',
	PRIMARY KEY (AUTH_ID, USER_ID)
) COMMENT = '권한-사용자';

INSERT INTO TB_AUTH_USER (
       AUTH_ID
	 , USER_ID
	 , REG_DT
) 
SELECT 'ROLE_ADMIN'
	 , @admin
	 , @now	 
;

-- 기능그룹 (xit-security)
CREATE OR REPLACE TABLE TB_ACTION_GRP (
	GRP_ID  VARCHAR(50) NOT NULL COMMENT '그룹 ID',
	GRP_NM VARCHAR(60)  NOT NULL COMMENT '그룹 이름',
	DSCRP  VARCHAR(200) COMMENT '설명',
	REG_DT VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	PRIMARY KEY (GRP_ID)
) COMMENT = '기능그룹';

INSERT INTO TB_ACTION_GRP (GRP_ID, GRP_NM, DSCRP, REG_DT)
SELECT 'anonymousAction' GRP_ID, '익명 기능' GRP_NM, '로그인하지 않은 사용자에게 허용된 기능' DSCRP, @now UNION
SELECT 'userAction' GRP_ID, '사용자 기본 기능' GRP_NM, '로그인한 모든 사용자에게 허용된 기능' DSCRP, @now;

-- 그룹별 기능 (xit-security)
CREATE OR REPLACE TABLE TB_GRP_ACTION (
	GRP_ID VARCHAR(50) NOT NULL COMMENT '그룹 ID',
	ACTION VARCHAR(60) NOT NULL COMMENT '기능(URL)',
	REG_DT VARCHAR(14) NOT NULL COMMENT '등록 일자',
	RGTR   VARCHAR(20) NOT NULL COMMENT '등록자 아이디',
	PRIMARY KEY (GRP_ID, ACTION)
) COMMENT = '그룹별 기능';

INSERT INTO TB_GRP_ACTION (GRP_ID, ACTION, REG_DT, RGTR)
SELECT 'anonymousAction' GRP_ID, '/login.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'anonymousAction' GRP_ID, '/error/pageNotFound.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'anonymousAction' GRP_ID, '/error/sessionExpired.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'anonymousAction' GRP_ID, '/error/invalidSession.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'anonymousAction' GRP_ID, '/error/accessDenied.do' ACTION, @now REG_DT, @admin RGTR UNION

SELECT 'userAction' GRP_ID, '/' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'userAction' GRP_ID, '/index.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'userAction' GRP_ID, '/user/info.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'userAction' GRP_ID, '/user/update.do' ACTION, @now REG_DT, @admin RGTR UNION
SELECT 'userAction' GRP_ID, '/user/changePassword.do' ACTION, @now REG_DT, @admin RGTR;

-- 공통코드 분류 (xit-code)
CREATE OR REPLACE TABLE TB_CODE_CTGR (
	CTGR_ID  VARCHAR(6)   NOT NULL COMMENT '분류 ID',
	CTGR_NM  VARCHAR(100) NOT NULL COMMENT '분류 이름',
	DSCRP    VARCHAR(300) COMMENT '설명',
	REG_DT   VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	RGTR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	MDFCN_DT VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	MDFR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	USE_YN   VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부(Y:사용 , N:사용하지 않음)',
	PRIMARY KEY (CTGR_ID)
) COMMENT = '공통코드 분류';

-- 공통코드 그룹 (xit-code)
CREATE OR REPLACE TABLE TB_CODE_GRP (
	GRP_ID   VARCHAR(6)   NOT NULL COMMENT '그룹 ID',
	CTGR_ID  VARCHAR(6)   COMMENT '분류 ID',
	GRP_NM   VARCHAR(60)  NOT NULL COMMENT '그룹 이름',
	DSCRP    VARCHAR(200) COMMENT '설명',
	REG_DT   VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	RGTR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	MDFCN_DT VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	MDFR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	USE_YN   VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부(Y:사용 , N:사용하지 않음)',
	PRIMARY KEY (GRP_ID)
) COMMENT = '공통코드 그룹';

-- 공통코드 (xit-code)
CREATE OR REPLACE TABLE TB_CMN_CODE (
	GRP_ID   VARCHAR(6)   NOT NULL COMMENT '그룹 ID',
	CODE     VARCHAR(15)  NOT NULL COMMENT '코드',
	CODE_VAL VARCHAR(60)  NOT NULL COMMENT '코드 값',
	DSCRP    VARCHAR(200) COMMENT '설명',
	ETC_1    VARCHAR(200) COMMENT '기타 1',
	ETC_2    VARCHAR(200) COMMENT '기타 2',
	ETC_3    VARCHAR(200) COMMENT '기타 3',
	SRT_ORD  TINYINT      DEFAULT 0 NOT NULL COMMENT '순서',
	REG_DT   VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	RGTR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	MDFCN_DT VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	MDFR     VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	USE_YN   VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부(Y:사용 , N:사용하지 않음)',
	PRIMARY KEY (GRP_ID, CODE)
) COMMENT = '공통코드';

-- 메뉴 (xit-menu)
CREATE OR REPLACE TABLE TB_MENU (
	MENU_NO      INT          NOT NULL COMMENT '메뉴 ID',
	MENU_NM      VARCHAR(60)  NOT NULL COMMENT '메뉴 이름',
	PRNT_NO      INT          COMMENT '상위 메뉴 ID',
	PGRM_FILE_NM VARCHAR(60)  COMMENT '프로그램 파일',
	ACTION       VARCHAR(256) COMMENT '실행기능',
	DSCRP        VARCHAR(250) COMMENT '설명',
	IMG_NM       VARCHAR(60)  COMMENT '이미지 이름',
	IMG_CNF      VARCHAR(100) COMMENT '이미지 설정',
	SRT_ORD      INT          DEFAULT 0 COMMENT '정렬 순서',
	REG_DT       VARCHAR(14)  NOT NULL COMMENT '등록 일자',
	RGTR         VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	PRIMARY KEY (MENU_NO)
) COMMENT = '메뉴';

INSERT INTO TB_MENU (
       MENU_NO
	 , MENU_NM
	 , PRNT_NO
	 , ACTION
	 , DSCRP
	 , SRT_ORD
	 , REG_DT
	 , RGTR
)
SELECT * FROM (
    SELECT 0 MENU_NO, '시스템' MENU_NM, NULL PRNT_NO, NULL ACTION, '시스템 관리' DSCRP, 0 SRT_ORD UNION
    SELECT 1 MENU_NO, '사용자' MENU_NM, 0 PRNT_NO, '/user/main.do' ACTION, '사용자 관리' DSCRP, 0 SRT_ORD UNION
    SELECT 2 MENU_NO, '기관/부서' MENU_NM, 0 PRNT_NO, '/user/sgg-dept.do' ACTION, '기관/부서 관리' DSCRP, 1 SRT_ORD UNION
    SELECT 3 MENU_NO, '공통 코드' MENU_NM, 0 PRNT_NO, '/code/main.do' ACTION, '공통코드 관리' DSCRP, 2 SRT_ORD UNION
    SELECT 4 MENU_NO, '권한' MENU_NM, 0 PRNT_NO, NULL ACTION, '권한 관리' DSCRP, 3 SRT_ORD UNION
    SELECT 5 MENU_NO, '권한 설정' MENU_NM, 4 PRNT_NO, '/authority/main.do' ACTION, '권한 설정' DSCRP, 0 SRT_ORD UNION
    SELECT 6 MENU_NO, '기능 분류' MENU_NM, 4 PRNT_NO, '/actionGroup/main.do' ACTION, '기능 분류' DSCRP, 1 SRT_ORD UNION
    SELECT 7 MENU_NO, '메뉴' MENU_NM, 0 PRNT_NO, '/menu/main.do' ACTION, '메뉴 관리' DSCRP, 4 SRT_ORD UNION
    SELECT 8 MENU_NO, '로그' MENU_NM, 0 PRNT_NO, '/syslog/main.do' ACTION, '시스템 로그 관리' DSCRP, 5 SRT_ORD
) A, (
    SELECT @now REG_DT, @admin RGTR
) B;

-- 관련 파일 (xit-file)
CREATE OR REPLACE TABLE TB_FILE (
	FILE_ID   VARCHAR(13)  NOT NULL COMMENT '파일 ID',
	INF_TYPE  VARCHAR(3)   NOT NULL COMMENT '관련정보 유형',
	INF_KEY   VARCHAR(64)  NOT NULL COMMENT '관련정보 Key',
	SUB_TYPE  VARCHAR(3)   COMMENT '관련정보 하위 분류(애플리케이션에서 정의)',
	SUB_CODE  VARCHAR(64)  COMMENT '관련정보 하위 코드(애플리케이션에서 정의)',
	FILE_NM   VARCHAR(128) NOT NULL COMMENT '파일 이름',
	FILE_PATH VARCHAR(256) NOT NULL COMMENT '파일 경로',
	MIME_TYPE VARCHAR(80)  COMMENT '파일 유형',
	FILE_SIZE DECIMAL(8)   NOT NULL COMMENT '파일 사이즈',
	DNLD_CNT  DECIMAL(5)   DEFAULT 0 NOT NULL COMMENT '다운로드 횟수',
	SRT_ORD   TINYINT      NOT NULL COMMENT '정렬 순서',
	REG_DT    DATE         NOT NULL COMMENT '등록 일자',
	RGTR      VARCHAR(20)  NOT NULL COMMENT '등록자 ID',
	USE_YN    VARCHAR(1)   DEFAULT 'Y' NOT NULL COMMENT '사용 여부(Y:사용 , N:사용하지 않음)',
	PRIMARY KEY (FILE_ID),
	INDEX (INF_TYPE, INF_KEY)
) COMMENT = '관련 파일';

-- 시스템 로그 (xit-syslog)
CREATE OR REPLACE TABLE TB_SYS_LOG (
	LOG_ID    VARCHAR(24)   NOT NULL COMMENT '로그 ID',
	LOG_TYPE  VARCHAR(16)   NULL COMMENT '로그 유형',
	URL       VARCHAR(256)  NULL COMMENT 'URL',
	CLS_NM    VARCHAR(128)  NULL COMMENT '클래스 이름',
	MTD_NM    VARCHAR(128)  NULL COMMENT '메소드 이름',
	FILE_NM   VARCHAR(128)  NULL COMMENT '파일 이름',
	DATA_CNT  INT           NULL COMMENT '데이터 수',
	DATA_NM   VARCHAR(1000) NULL COMMENT '데이터 이름',
	PSNL_INFO VARCHAR(256)  NULL COMMENT '개인 정보',
	USER_ID   VARCHAR(10)   NULL COMMENT '사용자 ID',
	IP_ADDR   VARCHAR(32)   NULL COMMENT 'IP 주소',
	REG_DT    VARCHAR(14)   NULL COMMENT '등록일시',
	PRIMARY KEY (LOG_ID),
	INDEX (LOG_TYPE, USER_ID)
) COMMENT = '시스템 로그';

CREATE OR REPLACE SEQUENCE SQ_SYS_LOG
START WITH 1
INCREMENT BY 1
MAXVALUE 9999999999999999
CYCLE;

COMMIT;

/*
DELIMITER $$
CREATE FUNCTION NVL(IP_DATA VARCHAR(100), IP_CONVERT VARCHAR(100)) RETURNS VARCHAR(100)
BEGIN
    DECLARE RTN_DATA VARCHAR(100);

    SET RTN_DATA := IFNULL(IP_DATA, IP_CONVERT);

    RETURN RTN_DATA;
END $$

DELIMITER ;
*/