Database/MySQL

MySQL 프러시저 - 기존 테이블 형식 대로 새로운 테이블 만들기

Any Developer 2021. 5. 11. 14:37

1. 프로시저 생성 목표

 - 새로운 테이블 이름을 입력 받아 기존 테이블과 Column 형식이 같은 테이블을 만들고 싶다.

 

 

2. 프로시저 내용

 

CREATE PROCEDURE `SP_CREATE_NEW_TBL`(in tblName varchar(45))
BEGIN

    declare irtn int default -1;	/* 리턴값 초기화 */
              
	
    /* tbltemplete 라는 복사 원본 형식대로 새로운 테이블을 생성함. */
    set @createTbl_stmt1 := concat ( "create table if not exists `",tblName,"` like `tbltemplete`" );
    prepare createTbl_stmt1 from @createTbl_stmt1;
    execute createTbl_stmt1;
    deallocate prepare createTbl_stmt1;
          
	
    /* 테이블이 생성되었는지 확인함. 테이블이 있으면 1, 테이블이 없으면 0 반환 (@irtn) */
    set @createTbl_stmt2 := concat ( "select count(*) into @irtn from information_schema.tables where table_name = '",tblName,"';" );
    prepare createTbl_stmt2 from @createTbl_stmt2;
    execute createTbl_stmt2;
    deallocate prepare createTbl_stmt2;
    
    set irtn = @irtn;
    
    /* Call 프러시저에 대한 반환 내용, 문자형식(0), 반환숫자(1)*/
    select if(irtn=1, "OK", "FAIL"), irtn;
    
END

 

3. 참조 페이지

 

MySQL 쿼리 - 기존 테이블 형식 대로 새로운 테이블 만들기 (tistory.com)

 

MySQL 쿼리 - 기존 테이블 형식 대로 새로운 테이블 만들기

1. 셋팅 내용  - 기본 테이블을 tblTemplete 라고 가정. 2. 새로운 테이블 이름 : tbldata001 이라고 지정. 3. 쿼리문 CREATE TABLE IF NOT EXISTS `tbldata001` LIKE `tblTemplete`;

iotcyuty.tistory.com