프로시저: 5개의 글
그동안 단일 건이나 간단한 IF문만 사용하여 프로시저를 생성했는데 MySQL에서도 Oracle의 Cursor같이 여러개의 데이터를 뽑아와 데이터를 반복하여 작업을 진행해보려한다. 1. TEST 테이블 생성하기 CREATE TABLE `TEST_TB1` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `useYn` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`) ) COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=..
테이블 백업을 수행하는 프로시저를 생성해보려고 한다. 기존 테이블(직원, 휴가, 휴가기록)에서 백업 테이블을 새로 생성하는 프로시저를 만든다. 프로시저를 생성하고 이벤트 스케쥴(event schedule)까지 걸어보겠다. 1. MySQL 프로시저 생성하기 DELIMITER $$ DROP PROCEDURE IF EXISTS backup_proc; CREATE PROCEDURE backup_proc() BEGIN DROP TABLE IF EXISTS BACKUP_EMP; CREATE TABLE BACKUP_EMP SELECT * FROM EMP_EMPLOYEE; DROP TABLE IF EXISTS BACKUP_VAC; CREATE TABLE BACKUP_VAC SELECT * FROM VAC_VACATIO..
커서를 테이블에 연 다음 모든 레코드를 반복하는 저장 프로 시저를 작성하고 있습니다. 반복 프로세스에서 첫 번째 커서의 결과를 기반으로 동적 쿼리를 만듭니다. 동적 SQL에서 커서를 열어야하는데 mysql의 공식 문서에 따르면 MySQL "커서는 핸들러를 선언하기 전에 선언해야합니다. 변수와 조건은 먼저 선언해야합니다. 커서 또는 핸들러 선언 " . 다음은 스크립트입니다. DELIMITER $$ DROP PROCEDURE IF EXISTS sp_test$$ CREATE PROCEDURE `sp_test`() BEGIN -- Declarations DECLARE prepared_sql VARCHAR(1000); DECLARE index_count INT; -- Cursors DECLARE cursor1 C..
[프로시저 내용] A테이블에(departments_dev) 접근하여 조회된 값을 커서에 담아서 B테이블(departments_dev2)에 입력하는 프로시저 0. 테스트용 생성 DDL (테스트용이라 간단하게 생성함) -- departments_dev 생성 (데이터 조회용 테이블) CREATE TABLE `departments_dev` ( `dept_no` CHAR(4) NOT NULL, `dept_name` VARCHAR(40) NOT NULL ) COLLATE='utf8_general_ci' ENGINE=InnoDB; insert into departments_dev values('d009','Customer Service'); insert into departments_dev values('d007',..
1. 스토어드 프로그램이란?MySQL에서는 절차적인 처리를 위해 스토어드 프로그램을 이용할 수 있습니다. 스토어드 프로그램은 스토어드 루틴이라고도 하는데, 스토어드 프로시저와 스토어드 함수 그리고 트리거와 이벤트 등을 모두 아우르는 명칭입니다. 스토어드 프로그램 가운데 스토어드 프로시저나 함수는 MySQL 5.0부터 추가된 기능이며, 스케줄러는 MySQL 5.1부터 추가된 기능입니다. 그럼 스토어드 프로그램(프로시저, 함수, 트리거)의 장점과 단점을 살펴보도록 하겠습니다. 1-1. 스토어드 프로그램의 장점- 데이터베이스의 보안 향상MySQL의 스토어드 프로그램은 자체적인 보안 설정 기능을 가지고 있으며, 스토어드 프로그램 단위로 실행 권한을 부여할 수 있습니다. 이러한 보안 기능을 조합해서 특정 테이블의..