728x90 개발/MySql13 Trigger (트리거) Trigger (트리거) 데이터베이스 트리거(Database Trigger)는 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미 테이블에 DML문(Insert, Update, Delete 등) 이벤트가 발생될 때 작동 테이블에 부착되는 프로그램 코드 자기가 직접 실행 불가. 테이블에 이벤트 일어나야 자동 실행 IN, OUT 매개 변수를 사용할 수 없음 MySQL은 View에 트리거 부착 불가!!! 트리거 종류 행 트리거 테이블 안의 영향을 받은 행 각각에 대해 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있다 old - 예전 데이터 즉, delete 로 삭제 된 데이터 또는 update 로 바뀌기 전의 데이터 new - 새 데이터 즉, inse.. 2022. 4. 15. 저장 함수(Stored Function) - 저장 프로시저와 거의 비슷하나 실행 후 결과 값을 반환(return) 한다는 점이 다름 - 사용자 정의 함수 라고도 부름 - MySQL은 5.0버전부터 사용 가능 저장 함수(Stored Function) - 명령어 RETURNS 함수 실행 후 반환할 데이터의 타입 RETURN 함수를 종료하고 값을 반환 저장 함수(Stored Function) - 생성/사용 * 생성 * 사용 - 기본 함수와 동일하게 함수 실행이 필요한 부분에서 사용 - CALL 을 이용해서 실행 하면 안됨 저장 함수(Stored Function) - 확인 / 삭제 • 저장 함수 확인 SHOW FUNCTION STATUS; SHOW CREATE FUNCTION ; • 저장 함수 삭제 DROP FUNCTION ; 2022. 4. 15. 저장 프로시저(Store Procedure) 1. 저장 프로시저란? 일련의 작업 절차를 정리해서 저장한 것 여러 SQL문을 묶어서 미리 정의해 두고 하나의 요청으로 실행할 수 있음 자주 사용되는 복잡한 작업들을 간단하게 실행 할 수 있음 Application에서 직접 모든 작업을 요청하지 않아도 되기 때문에 부하가 줄어들고 보안이 향상됨 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험함 MySQL은 5.0버전부터 사용 가능 2. 저장 프로시저 사용 2-1. 저장 프로시저 만들기 BEGIN에서 END까지가 저장 프로시저의 본체이다. 시작 부분에 BEGIN, 끝 부분에 END를 붙여 저장 프로시저의 명령 범위를 명확히 하고 있다. 구분 문자(;) 변경하기 명령문이 완성되지 않은 상태에서 실행되는 부분을 막기 위해 저장 프로시저에서 END를 입력.. 2022. 4. 14. 쿼리 작성 및 최적화 1. MySQL 연산자와 내장 함수 Type 비교 MySQL은 숫자 타입과 문자열 타입 간의 비교에서 숫자 타입을 우선시하므로 문자열 값을 숫자 값으로 변환한 후 비교를 수행한다. MySQL에서는 정해진 형태의 날짜 포맷으로 표기하면 MySQL서버가 자동으로 DATE나 DATETIME 값으로 변환한다. BETWEEN, IN, NOT IN BETWEEN : BETWEEN이 선형으로 인덱스를 검색해야 하는 것과 달리 IN은 동등 비교를 여러번 수행하는 것과 같은 효과가 있기 때문에 여러 column의 인덱스를 최적으로 사용할 수 있다. IN : IN 연산자에 상수값을 입력으로 전달하는 경우는 다른 DBMS만큼 최적화해서 수행할 수 있다. 하지만 IN 연산자의 입력이 상수가 아니라 서브쿼리인 경우에는 상당히 .. 2022. 4. 13. 이전 1 2 3 4 다음 728x90