ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySql 워크벤치에서 프로시저 생성
    MySQL 2020. 6. 7. 14:51

    프로시저 생성

    - DEFINER: 접근 권한

    - PROCEDURE [프로시저이름]

    - 매개변수 + 타입

    - SET 변수설정

       - 기호가 없으면 프로시저 실행이 끝나면 초기화

       - @ 있음녀 프로시저가 끝나도 계속 유지

    - CONCAT(): 문자열 합치기

    - PREPARE: 실행준비 (한번만 해주면 계속 EXECUTE 해줄 수 있음)

    - EXECUTE: PREPARE 된 것을 실행

     

    CREATE DEFINER=`root`@`%` PROCEDURE `test_prc`(id int(10))
    BEGIN
    
    SET @t1 = CONCAT('SELECT * FROM test_', id); 
    PREPARE s FROM @t1;
    EXECUTE s; 
    
    END

     

    이런 식의 프로시저는 테이블이름을 배열 변수에 담아서 LOOPING 돌려 한번에 처리 가능
    CREATE DEFINER=`root`@`%` PROCEDURE `delete_data`(id int)
    BEGIN
    	DELETE FROM wave WHERE tester_id=id;
            DELETE FROM emotion WHERE tester_id=id;
    	DELETE FROM face_eye WHERE tester_id=id;
    	DELETE FROM stt WHERE tester_id=id;
    	DELETE FROM wave WHERE tester_id=id;
    	DELETE FROM pulse WHERE tester_id=id;
    	DELETE FROM file_status WHERE tester_id=id;
    END

     

    프로시저 콜

    call `procedure_name`(인자);
    call delete_data(10);

    댓글

Designed by Tistory.