728x90
반응형
PREPARE Statement는 MySQL에서 동적 SQL을 실행하기 위한 기능입니다. SQL 쿼리를 미리 준비해두고, 실행 시점에 파라미터를 바인딩하여 실행할 수 있습니다.
기본 구문:
PREPARE stmt_name FROM preparable_stmt;
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
DEALLOCATE PREPARE stmt_name;
실제 사용 예시:
-- 변수 설정
SET @table = 'employees';
SET @sql = CONCAT('SELECT * FROM ', @table, ' WHERE id = ?');
-- 준비
PREPARE stmt FROM @sql;
-- 파라미터 설정
SET @id = 100;
-- 실행
EXECUTE stmt USING @id;
-- 해제
DEALLOCATE PREPARE stmt;
더 실용적인 예시:
-- 동적으로 IN 절 생성
SET @ids = '1,2,3,4,5';
SET @sql = CONCAT('SELECT * FROM products WHERE id IN (', @ids, ')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
PREPARE Statement의 장점:
1. SQL 인젝션 방지
2. 반복적인 쿼리 실행 시 성능 향상
3. 동적 쿼리 생성 용이
주의사항:
- PREPARE된 statement는 세션이 종료되면 자동으로 해제됨
- 사용 후 DEALLOCATE PREPARE로 명시적 해제 권장
- 하나의 세션에서 동일한 이름의 statement를 재사용하려면 먼저 해제 필요
728x90
반응형
'SQL > MYSQL' 카테고리의 다른 글
[MySQL] Statement Labels 사용 방법 및 예시 (0) | 2024.12.12 |
---|---|
[MySQL] BEGIN END 사용 방법 및 예시 (0) | 2024.12.11 |
[MySQL] DEALLOCATE PREPARE 사용 방법 및 예시 (0) | 2024.12.10 |
[MySQL] EXECUTE 사용 방법 및 예시 (1) | 2024.12.10 |
[MySQL] STOP GROUP_REPLICATION 사용 방법 및 예시 (0) | 2024.12.04 |
[MySQL] START GROUP_REPLICATION 사용 방법 및 예시 (1) | 2024.12.03 |
[MySQL] STOP REPLICA 사용 방법 및 예시 (0) | 2024.12.02 |
[MySQL] START REPLICA 사용 방법 및 예시 (0) | 2024.11.26 |