| 
                     실행환경  | 
            |
| 
                     Desktop  | 
                
                     조립식  | 
            
| 
                     CPU  | 
                
                     Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 3.40GHz  | 
            
| 
                     Memory  | 
                
                     8.00 GB  | 
            
| 
                     OS  | 
                
                      Windows 7 Professional K 64bit  | 
            
| 
                     Java  | 
                
                     1.8.0_05  | 
            
MySQL  | Ver 14.14 Distrib 5.6.19, for Win64  | 
함수 만들기
DELIMITER $$
DROP FUNCTION IF EXISTS `db_name.function_name`$$
CREATE  FUNCTION `db_name.function_name`(stID int, endID int, line int) RETURNS int
    DETERMINISTIC
BEGIN
Declare stOrd int;
declare endOrd int;
declare result int;
select ord into stOrd 
from busstoplinelist 
where BusLineID = line and BusStopID = stID;
select ord into endOrd 
from busstoplinelist 
where BusLineID = line and BusStopID = endID;
RETURN endOrd - stOrd;
    END$$
DELIMITER ;
select function_name(421, 423, 1525);
DELIMITER : $$ 문장의 끝을 $$로 바꾸어준다는 뜻DETERMINISTIC : Link
예외 처리
delimiter $$
DROP PROCEDURE IF EXISTS db_name.procedure_name$$
CREATE PROCEDURE db_name.procedure_name(IN num INT, IN ch VARCHAR(2))
BEGIN
     DECLARE err INT DEFAULT '0'; 
     DECLARE CONTINUE HANDLER FOR SQLEXCEPTION  SET err = -1; 
     START TRANSACTION;
     INSERT INTO table_name VALUES (num, ch);     // 성공
     INSERT INTO table_name VALUES (ch, num);     // 실패
     IF err < 0 THEN 
          ROLLBACK; 
     ELSE 
          COMMIT; 
     END IF; 
END $$
delimiter ;
참고사이트 Link
'Database > MySQL' 카테고리의 다른 글
| [MySQL] utf-8 설정하기 (0) | 2014.09.03 | 
|---|---|
| [MySQL] 오토커밋(autocommit) 상태 확인하기 (0) | 2014.09.01 | 
| [MySQL] Error: could not open single-table tablespace file .\mysql\innodb_index_stats.ibd (0) | 2014.08.27 | 
| [MySQL] 테이블 수정(컬럼명 변경, 컬럼추가, 삭제, 이동, 테이블 이름변경) (0) | 2014.08.25 |