SQL > MYSQL - Tip&Tech > MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드
 
SQL
MYSQL
MS-SQL
ORACLE
 
 
MYSQL - Tip&Tech
  HOME > SQL > MYSQL - Tip&Tech
 
작성일 : 17-08-09 17:02
MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 69   추천 : 0   비추천 : 0  
   http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=6… [13]
MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드


DROP TABLE IF EXISTS my_bundles;
CREATE TABLE my_bundles(seq int auto_increment, total int, bundle textPRIMARY KEY (seq));
INSERT INTO my_bundles(total,bundle) VALUES (3,"JAVAscRIPT,ACTIONscRIPT,HTML"),(1,"C++"),(2,"ALGOL,C#"),(7,"C,PHP,JSP,LISP,BASIC,ADA,PYTHON"),(6,"JAVA,RUBY,PASCAL,COBOL,FORTRAN,PERL"),(5,"DELPHI,PROLOG,SMALLTALK,PERL,COLDFUSION");
SELECT FROM my_bundles;

DROP TABLE IF EXISTS my_items;
CREATE TABLE my_items(seq int auto_increment, language varchar(32), PRIMARY KEY (seq));

DELIMITER $$
DROP PROCEDURE IF EXISTS tokenizer $$
CREATE PROCEDURE tokenizer(
    INOUT input_string varchar(1025), OUT token varchar(1025), IN boundary varchar(16
READS SQL DATA
BEGIN
    SELECT char_length(boundary) INTO @boundry_length;
    SET @idx LOCATE(boundary,input_string);
    IF (@idx 0THEN
        SET token input_string;
        SET input_string = NULL;
    ELSE
        SET token SUBSTR(input_string,1,@idx-1);
        SET input_string SUBSTR(input_string,@idx @boundry_length);
    END IF;
END
$$
DELIMITER ;

DELIMITER $$ 
DROP PROCEDURE IF EXISTS insert_items $$ 
CREATE PROCEDURE insert_items(IN my_str varchar(1024)) MODIFIES SQL DATA 
BEGIN 
    SELECT my_str INTO @org_string
    CALL tokenizer(@org_string, @tkn_str','); 
    WHILE (@tkn_str IS NOT NULL) DO 
        INSERT INTO my_items(language) VALUES (@tkn_str); 
        CALL tokenizer(@org_string, @tkn_str','); 
    END WHILE
END 
$$ 
DELIMITER 

CALL insert_items('a,b,c');
SELECT FROM my_items;

DELIMITER $$ 
DROP PROCEDURE IF EXISTS insert_cols_items $$ 
CREATE PROCEDURE insert_cols_items()
BEGIN 
    DECLARE ok INT DEFAULT '0';
    DECLARE tmp_seq INT DEFAULT '0';
    DECLARE tmp_total INT DEFAULT '0';
    DECLARE tmp_bundle TEXT DEFAULT '';
    DECLARE tot INT DEFAULT '0';
    DECLARE cur CURSOR FOR SELECT seq, total, bundle FROM my_bundles;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET ok 1;
    OPEN cur;
    REPEAT
        FETCH cur INTO tmp_seq, tmp_total, tmp_bundle; 
        IF NOT ok THEN 
            CALL insert_items(tmp_bundle);
            SET tot tot 1;
        END IF;
    UNTIL ok END REPEAT;
    CLOSE cur;
    IF tot THEN
        SELECT tot;
    ELSE
        SELECT 0;
    END IF;
END
$$ 
DELIMITER 

TRUNCATE my_items;
CALL insert_cols_items();
SELECT FROM my_items;




 
 

Total 48
번호 제   목 글쓴이 날짜 추천 비추천 조회
48 myql 버전차이로 콘솔외부접속 pre-4.1.1 에러발생시 덩벙이 07-05 0 0 13
47 MySQL 5.x 버전에 복구시 TYPE=MyISAM Error 해결 방법 덩벙이 07-03 0 0 11
46 modsecurity 설치 방법!! (2) 덩벙이 08-11 0 0 69
45    modsecurity 설치 방법!! <apache 기반> 덩벙이 08-11 0 0 71
44    modsecurity 설치 방법!! 덩벙이 08-11 0 0 72
43    modsecurity 설치 방법!! 덩벙이 08-11 0 0 72
42    modsecurity 설치 방법!! 덩벙이 08-11 0 0 67
41    modsecurity 설치 방법!! 덩벙이 08-11 0 0 69
40 apache 웹방화벽 modsecurity용 웹설정 툴, Remo 덩벙이 08-11 0 0 72
39 [리눅스/유닉스] MySQL Proxy를 사용한 간단한 데이터베이스 로… 덩벙이 08-11 0 0 72
38 [Mysql] 프로시저 사용 예 덩벙이 08-09 0 0 78
37 MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드 덩벙이 08-09 0 0 70
36 mysqldump 시 압축해서 덤프 받는 방법 덩벙이 07-04 0 0 75
35 Too many open files 에러 처리 덩벙이 07-04 0 0 73
34 MySQL 런타임 상태 보기 덩벙이 07-04 0 0 70
33 MySQL 대소문자 구분하기 덩벙이 07-04 0 0 69
32 MySQL Too many open files 에러 처리 방법 출처: http://blog.… 덩벙이 07-04 0 0 79
31 PHP mysqldump 받아서 다운로드 하는 방법 덩벙이 07-04 0 0 77
30 PHP mysqldump 로 테이블 백업 받는 방법 덩벙이 07-04 0 0 79
29 MySQL 주별 통계 쿼리시 주의할 점 덩벙이 07-04 0 0 81
 1  2  3  
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.