mysql trigger 예제

  • 0

mysql trigger 예제

AFTER 트리거는 BEFORE 트리거가 있고 행 작업이 성공적으로 실행되는 경우에만 실행됩니다. 트리거 이름은 스키마 네임스페이스에 존재하므로 모든 트리거에는 스키마 내에 고유한 이름이 있어야 합니다. 다른 스키마의 트리거는 이름이 같을 수 있습니다. MySQL v5.7.2 이전에는 동일한 트리거 이벤트에 대해 여러 트리거 이벤트를 정의할 수 없었지만 이제는 가능해졌습니다. 트리거는 INSERT, DELETE 또는 UPDATE 문으로만 트리거되며 TRUNCATE 등과 같은 다른 문에는 트리거되지 않습니다. 그러나 다시 말하지만 REPLACE 문 이나 LOAD DATA 문과 같은 장면 뒤에 INSERT 문을 사용하는 문이 있습니다. 이러한 문을 사용하면 테이블과 연결된 해당 트리거가 트리거됩니다. 다음 예제에서는 emp_details 및 log_emp_details라는 두 개의 테이블이 있습니다. insert가 emp_details 테이블에 발생할 때마다 log_ emp_details 테이블(직원 ID 및 급여 및 edttime 이 3개 필드)에 일부 정보를 삽입하려면 다음 트리거를 사용했습니다: 샘플 데이터베이스, 테이블, 테이블 구조, 테이블 레코드 다양한 예제에 대한 SQL 트리거 구현은 SQL 표준을 기반으로 합니다. 대부분의 프로그래밍 언어에 공통적인 구문입니다. 로컬 변수 선언, 프로시저 흐름을 제어하는 명령문, 변수에 식 결과 할당 및 오류 처리를 지원합니다.

우리는 당신이 우리의 MySQL 절차 자습서를 읽을 수 없습니다하지 않을 경우, „MySQL 저장 절차”습관적 이라고 가정합니다. 트리거에서 MySQL 프로시저의 다음 문을 사용할 수 있습니다: 트리거 파일을 백업 폴더 또는 원하는 다른 위치에 복사하여 MySQL 트리거를 백업할 수 있습니다. 또한 트리거 폴더를 VCS 리포지토리로 처리하고 변경될 때마다 백업을 수행할 수도 있습니다. 다음과 같이 만들어진 Student_age 테이블에 트리거를 적용한다고 가정해 보겠습니다. student_mast에는 STUDENT_ID, 이름, ST_CLASS 및 stu_log 테이블에는 두 개의 열user_id 및 설명이 있습니다. student_mast 테이블에서 삭제 작업이 발생한 후 stu_log 테이블에 일부 정보를 저장하려고 합니다. 다음은 트리거입니다 : 저장 프로시저를 별도로 정의한 다음 간단한 CALL 문을 사용하여 트리거에서 호출하는 것이 더 쉬울 수 있습니다. 이는 여러 트리거 내에서 동일한 코드를 실행하려는 경우에도 유리합니다. 이 단원에서는 만든 트리거에 대한 예제를 실행할 수 있도록 완전한 MySQL Server 설치가 필요합니다.

MySQL 트리거를 시작하기 위해 몇 가지 간단한 명령으로 설치를 수행하는 방법을 이해하려면 MySQL Server 자습서 강의를 참조하십시오. MySQL 테이블이 있고 특정 조건에 따라 일부 데이터를 자동으로 삽입하는 트리거를 만들고 싶습니다. 그와 함께 MySQL 트리거를 만들기위한 기본 구문에 대해 알고 싶습니다. 트리거를 만들거나 트리거를 삭제하려면 섹션 13.1.19, „트리거 구문 만들기”및 섹션 13.1.30, „DROP 트리거 구문”에 설명된 CREATE 트리거 또는 DROP 트리거 문을 사용합니다. 예를 들어 이전 섹션에서 만든 트리거를 삭제하려면 트리거 본문 내에서 OLD 및 NEW 키워드를 사용하여 트리거의 영향을 받는 행의 열에 액세스할 수 있도록 하는 다음 SQL 명령을 실행할 수 있습니다. 이전 및 새 트리거에 대한 MySQL 확장입니다. 대/소문자를 구분하지 않습니다. 의 라는 트리거를 만들어 보자 업데이트ProductPrice.

이 특정 트리거는 제품 테이블이 업데이트될 때마다 활성화됩니다.