[DB] MSSQL 을 MYSQL 로 마이그레이션 하기 (스크립트 사용)

Posted by 김성철

MSSQL데이터를 MYSQL 로 옮기기

참고 링크 : https://apost.kr/505  
  1. SSMS 실행 (SQL Server Managerment Studio)

  2. 마이그레이션 할 데이터베이스 우클릭
    -> 태스크
    -> 스크립트 생성 클릭

  3. 다음 버튼을 눌러 “스크립팅 옵션 설정” 페이지까지 이동

  4. 저장할 위치 설정

  5. “스크립팅 옵션 설정 화면에서 “고급(A)”클릭

  6. “고급 스크립팅 옵션” 에서 “스크립팅할 데이터 형식” 에서 “데이터” 로 선택

  7. 생성된 데이터파일을 MYSQL 에 맞게 커스터마이징..

=====================================================================================================================================================
좀더 다르게 작업함

  1. MSSQL 에 가져올 데이터들을 보관할 테이블 생성
  • 쿼리문

CREATE TABLE [dbo].securus_idp_user
=====================================================================================================================================================

  1. 생성된 테이블에다가 원하는 값들을 입력
  • 쿼리문

INSERT INTO [dbo].[dbo].securus_idp_user
SELECT
[employeeID]
,[cn]
,[displayName]
,[department]
FROM [dbo].[dbo].[tuser]
=====================================================================================================================================================

  1. 데이터를 스크립트로 출력

  2. 해당 출력한 데이터들을 커스터마이징
    1. N 이라는 단어 제거
    2. 인설트문 변경
    • 스크립트에 있는 내용
      =====================================================================================================================================================
      ISERT [dbo].[securus_idp_user] ([idp_user_id], [idp_emp_code], [idp_user_ick], [idp_user_ame], [idp_user_deptId])

    =====================================================================================================================================================

    • 변경한 내용
      =====================================================================================================================================================
      INSERT ignore INTO securus_idp_user (idp_user_id,idp_emp_code,idp_user_name,idp_user_nick, idp_user_deptid)
      =====================================================================================================================================================
  3. 사용자 정보에 맞게 데이터 변경 및 수정

    UPDATE securus_idp_user SET idp_user_regist_date = ‘20200714’ ,idp_user_regist_time = ‘180609’, idp_user_pw=’PassWord!’
    WHERE idp_user_ou IS NULL

  4. SP 테이블에 데이터 삽입

    INSERT ignore INTO securus_sp_user (idp_user_id , sp_user_id , sp_dept_id, sp_id_regist_date , sp_id_regist_time)
    SELECT idp_emp_code , idp_emp_code , idp_user_deptid ,idp_user_regist_date , idp_user_regist_time FROM securus_idp_user WHERE idp_user_ou = ‘A’

  5. 사용자 부서 정보 수정

    UPDATE securus_idp_user SET idp_user_ou = ‘A’, idp_user_deptid=’100’
    WHERE idp_emp_code LIKE ‘1%’

    UPDATE securus_idp_user SET idp_user_ou = ‘F’, idp_user_deptid=’600’
    WHERE idp_emp_code LIKE ‘3%’

    UPDATE securus_idp_user SET idp_user_ou = ‘E’, idp_user_deptid=’500’
    WHERE idp_emp_code LIKE ‘7%’

    UPDATE securus_idp_user SET idp_user_ou = ‘X’, idp_user_deptid=’800’
    WHERE idp_emp_code LIKE ‘9%’

    UPDATE securus_idp_user SET idp_user_ou = ‘B’, idp_user_deptid=’200’
    WHERE idp_emp_code LIKE ‘B%’

    UPDATE securus_idp_user SET idp_user_ou = ‘C’, idp_user_deptid=’300’
    WHERE idp_emp_code LIKE ‘C%’

    UPDATE securus_idp_user SET idp_user_ou = ‘D’, idp_user_deptid=’400’
    WHERE idp_emp_code LIKE ‘D%’

    UPDATE securus_idp_user SET idp_user_ou = ‘G’, idp_user_deptid=’700’
    WHERE idp_emp_code LIKE ‘G%’

######################################################################################################################################################

부서 정보 내려받기

  1. MSSQL 에 가져올 데이터들을 보관할 테이블 생성
  • 쿼리문

CREATE TABLE [dbo].securus_dept
=====================================================================================================================================================

  1. 생성된 테이블에다가 원하는 값들을 입력
  • 쿼리문

INSERT INTO [dbo].[dbo].securus_dept
SELECT
[groupID]
,[groupID]
,[cn]
,[parentID]

FROM [dbo].[dbo].[tgroup]

  1. 데이터를 스크립트로 출력

  2. 해당 출력한 데이터들을 커스터마이징
    1. N 이라는 단어 제거
    2. 인설트문 변경
    • 스크립트에 있는 내용
      =====================================================================================================================================================
      ISERT [dbo].[securus_dept] ([dept_id], [dept_code], [dept_ame], [dept_par_id])

    =====================================================================================================================================================

    • 변경한 내용
      =====================================================================================================================================================
      INSERT ignore INTO securus_dept (dept_id,dept_code,dept_ame,dept_par_id)
      =====================================================================================================================================================
  3. 부서 정보에 맞게 업데이트

    UPDATE securus_dept SET dept_sv_id=’1’ WHERE dept_sv_id Is NULL

    UPDATE securus_dept SET dept_registdate=’20200606’ WHERE dept_registdate Is NULL

※ 현재 IM 에서 오류발생함, 데이터베이스 코드랑 아이디에 문자가 드렁가 있으면 발생함 ㅠㅠ

K = 9로 ,  
L = 8로 변환하여서 테스트 진행  
B = 7로 변환하여 테스트 진행  
  
브릿지씨엔씨_ L0017 의경우에는  
(주)디투아이 랑 같음;;;;;  
브릿씨엔씨는 " L0017" 이고  
디투아이는 "L0017" 임;;