작성한 트리거는 데이터베이스 시스템에 저장됩니다. SHOW TRIGGERS; 명령은 트리 거 설정에 대한 정보들을 출력합니다.

| 쿼리 문법 |

SHOW TRIGGERS; 

23.2.1 쿼리 실습

트리거의 내용을 콘솔 명령을 통하여 확인해 봅니다. 앞에서 실습한 트리거의 내용들이 출력되는 것을 확인할 수 있습니다.

| 콘솔 실습 화면 |

mysql> SHOW TRIGGERS;
+------------+--------+---------+-------------------------------------------------------------------------------------------+--------+---------+------------------------+----------------+----------------------+----------------------+--------------------+
| Trigger    | Event  | Table   | Statement                                                                                 | Timing | Created | sql_mode               | Definer        | character_set_client | collation_connection | Database Collation |
+------------+--------+---------+-------------------------------------------------------------------------------------------+--------+---------+------------------------+----------------+----------------------+----------------------+--------------------+
| backup_mem | DELETE | members | BEGIN
INSERT INTO members1 (FirstName,LastName) VALUES (OLD.FirstName, OLD.LastName);
END | BEFORE | NULL    | NO_ENGINE_SUBSTITUTION | root@localhost | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------------+--------+---------+-------------------------------------------------------------------------------------------+--------+---------+------------------------+----------------+----------------------+----------------------+--------------------+
1 row in set (0.03 sec)

23.2.2 PHP 실습

PHP 코드를 통하여 트리거의 내용을 확인할 수 있습니다. 관련 처리 메서드를 만들어 봅니다.

| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.

public function showTriggers()
{
       
                $queryString = "SHOW TRIGGERS";
                
                if ($result = mysqli_query($this->dbcon, $queryString)) {
                    $this->msgEcho("쿼리성공] ".$queryString);
                    $rowss = "";
                    $row_cnt = mysqli_num_rows($result);
                    for ($i=0; $i<$row_cnt; $i++) {
                        $rowss[$i] = mysqli_fetch_object($result);
                    }

                    $result->free();
                    return $rowss;
                } else {
                    $this->msgEcho("Error] ".$queryString);
                }
   
}

예제 파일 | tri-02.php

<?php

	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();

	if($rowss = $db->showTriggers()){
		echo "tables fields = ". count($rowss) . "<br>";
 
		for($i=0;$i<count($rowss);$i++){
			echo $i."=";            
			print_r($rowss[$i]);
			echo "<br>";
		}
	} else {
		echo "트리거 empty!";
	}
 
?>

화면 출력

mysql connected!
쿼리성공] SHOW TRIGGERS
tables fields = 1
0=stdClass Object ( [Trigger] => backup_mem [Event] => DELETE [Table] => members [Statement] => BEGIN INSERT INTO members1 (FirstName,LastName) VALUES (OLD.FirstName, OLD.LastName); END [Timing] => BEFORE [Created] => [sql_mode] => NO_ENGINE_SUBSTITUTION [Definer] => root@localhost [character_set_client] => utf8 [collation_connection] => utf8_general_ci [Database Collation] => utf8_general_ci )