aug 02, 2019
admin
0
41

mysql 트리거 insert 예제

MySQL은 트리거가 생성될 때 적용되는 sql_mode 시스템 변수 설정을 저장하며 현재 서버 SQL 모드에 관계없이 항상 이 설정을 적용하여 트리거를 실행합니다. 트리거를 사용하려면 누적 변수를 0으로 설정하고 INSERT 문을 실행한 다음 변수가 나중에 어떤 값을 가지고 있는지 확인합니다: 트리거가 활성화될 때 실행되는 문에 표시될 수 있는 내용에 제한이 있습니다: SQL 트리거 구현은 SQL 표준을 기반으로 합니다. 대부분의 프로그래밍 언어에 공통적인 구문입니다. 로컬 변수 선언, 프로시저 흐름을 제어하는 명령문, 변수에 식 결과 할당 및 오류 처리를 지원합니다. 스키마를 살펴보면 emp_details_AINS 트리거가 emp_details 테이블 아래에 다음과 같이 표시됩니다. 즉, 트리거가 활성화될 때마다 실행되는 명령문이며, 트리거링 이벤트의 영향을 받는 각 행에 대해 한 번씩 발생합니다. 이 예제에서 트리거 본문은 양 열에 삽입된 값을 사용자 변수에 축적하는 간단한 SET입니다. 문은 열을 NEW.amount로 참조하여 ”새 행에 삽입할 양 열의 값”을 의미합니다. 위의 예는 INSERT 및 trigger_time이 이전과 같이 trigger_event가 있는 트리거의 예입니다. 위의 예에서는 트리거에 대한 MySQL 확장인 새 키워드 `NEW`가 있습니다. `OLD`와 `NEW`를 트리거하는 두 개의 MySQL 확장이 있습니다. 이전 및 새 는 대/소문자를 구분하지 않습니다. ”STOP ACTION”을 만드는 또 다른 방법은 기본 키(reason_to_stop)만 있는 테이블(stop_action)을 만드는 것입니다.

그런 다음 이 테이블을 일부 텍스트로 미리 채우십시오 (`그렇게하지 마십시오`, `또는 그 중 하나`)=> 작업을 중지하려면 미리 채워진 값 (`그렇게하지 마십시오`)으로이 테이블 (stop_action)에 삽입하십시오. 트리거를 삭제하려면 DROP TRIGGER 문을 사용합니다. 트리거가 기본 스키마에 없는 경우 스키마 이름을 지정해야 합니다: 트리거를 만들거나 트리거를 삭제하려면 섹션 13.1.22, ”트리거 구문 만들기”, 섹션 13.1.34, ”DROP 트리거 구문”에 설명된 CREATE 트리거 또는 DROP 트리거 문을 사용합니다. 또한 직원 에서 MySQL Workbench를 사용하여 스키마를 보면 아래 스크린 샷과 같이 [employee_update] 트리거가 표시됩니다. 트리거의 영향을 받습니다. 이전 및 새 트리거에 대한 MySQL 확장입니다. 대/소문자를 구분하지 않습니다. 이제 업데이트된 데이터로 STUDENT_MARKS 테이블을 확인합니다. 트리거는 `stu_log`에서 업데이트된 레코드를 표시합니다. BEFORE 트리거는 이후에 시도가 성공하는지 여부에 관계없이 행을 삽입하거나 수정하려는 시도에 의해 활성화됩니다. 트리거에 ”중지 작업”을 수행할 수 없습니다.

예를 들어 행을 삭제하고 이 작업이 트리거를 활성화하는 경우 행의 DELETE의 proccs를 중단할 수 없습니다. 현재 작업을 중단하는 방법은 의도적인 오류를 일으키는 것입니다. 이 문서의 범위를 벗어나는 것은 아니지만 두 트리거를 모두 처리하는 단일 저장 프로시저를 호출하는 것이 좋습니다. 트리거는 테이블과 연결된 명명된 데이터베이스 개체이며 테이블에 대해 특정 이벤트(예: 삽입, 업데이트 또는 삭제)가 발생할 때 활성화됩니다. CREATE 트리거라는 문은 MySQL에서 새 트리거를 만듭니다. 다음은 구문입니다 : MySQL에서 직원 테이블의 변경 내용을 기록하기 위한 트리거를 만들어 보겠습니다. INSERT: 새 행이 테이블에 삽입될 때마다 트리거가 활성화됩니다. 예를 들어 INSERT, 로드 데이터 및 바꾸기 문을 통해 계산합니다. 이제 이 트리거를 호출하기 위해 다음 문을 사용할 수 있습니다.

POST CATEGORIES

Okategoriserade