Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에 있는 경우 트리거를 삭제하시겠습니까?


트리거를 삭제하려면 DROP 명령을 사용하십시오. 구문은 다음과 같습니다 -

DROP TRIGGER IF EXISTS yourTriggerName;

위의 구문을 이해하려면 현재 데이터베이스에 트리거가 있어야 합니다.

트리거가 있는지 확인하려면 아래 쿼리를 사용할 수 있습니다. 데이터베이스에 트리거가 있습니다 -

mysql> show triggers;

다음은 출력입니다 -

+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| Trigger     | Event   | Table        | Statement                                                              | Timing |Created                 | sql_mode                                   |  Definer                 | character_set_client | collation_connection | Database Collation |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| CheckSalary | INSERT | employeetable | if new.EmployeeSalary < 1000 then setnew.EmployeeSalary = 10000;end if | BEFORE | 2018-12-31 17:33:29.54 |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | utf8 |utf8_general_ci | utf8mb4_0900_ai_ci |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.17 sec)

여기에는 employeetable에 'CheckSalary'라는 이름의 트리거가 있습니다. DROP 명령을 사용하여 'CheckSalary' 트리거를 삭제합니다. 쿼리는 다음과 같습니다 -

mysql> drop trigger if exists CheckSalary;
Query OK, 0 rows affected (0.30 sec)

show triggers 명령을 사용하여 트리거가 있는지 여부를 확인합니다. 쿼리는 다음과 같습니다 -

mysql> show triggers;
Empty set (0.00 sec)

지금 위의 결과를 보면 트리거가 데이터베이스 '테스트'에 존재하지 않습니다. drop을 사용하여 제거했습니다.