MySQL - SHOW TRIGGERS: Hướng dẫn toàn diện cho người mới bắt đầu

Xin chào các bạn tương lai của thế giới cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của các trigger trong MySQL. Đừng lo lắng nếu bạn là người mới - tôi sẽ là người hướng dẫn thân thiện của bạn, giải thích mọi thứ từng bước. Vậy, hãy lấy một tách cà phê và cùng tôi bước vào!

MySQL - Show Trigger

Trigger là gì trong MySQL?

Trước khi chúng ta vào phần hiển thị trigger, hãy nhanh chóng hiểu trigger là gì. Hãy tưởng tượng bạn có một cái chuông cửa ma thuật không chỉ reo khi ai đó bấm vào nó mà còn bật đèn và bắt đầu phát nhạc. Điều đó tương tự như những gì trigger làm trong cơ sở dữ liệu - chúng tự động thực hiện các hành động khi một số sự kiện xảy ra.

Hiển thị Trigger trong MySQL

Bây giờ, hãy học cách xem các trigger mà chúng ta có trong cơ sở dữ liệu MySQL của mình. Điều này giống như nhìn sau màn để xem tất cả các cái chuông cửa ma thuật mà chúng ta đã thiết lập!

Lệnh cơ bản SHOW TRIGGERS

Cách đơn giản nhất để xem tất cả các trigger trong cơ sở dữ liệu hiện tại của bạn là sử dụng lệnh SHOW TRIGGERS. Dưới đây là cách bạn làm:

SHOW TRIGGERS;

Khi bạn chạy lệnh này, MySQL sẽ hiển thị một bảng với thông tin về tất cả các trigger trong cơ sở dữ liệu hiện tại. Điều này giống như nhận được một danh sách tất cả các cái chuông cửa trong nhà bạn!

Hiểu kết quả đầu ra

Kết quả của SHOW TRIGGERS bao gồm nhiều cột. Hãy phân tích chúng:

  1. Trigger: Tên của trigger
  2. Event: Hành động kích hoạt trigger (INSERT, UPDATE, hoặc DELETE)
  3. Table: Bảng liên quan đến trigger
  4. Statement: Lệnh SQL mà trigger thực thi
  5. Timing: Khi trigger bắn (BEFORE hoặc AFTER sự kiện)
  6. Created: Khi trigger được tạo
  7. sql_mode: Chế độ SQL khi trigger được tạo
  8. Definer: Người đã tạo trigger

Sử dụng với FROM hoặc IN

Đôi khi, bạn có thể muốn xem trigger từ một cơ sở dữ liệu cụ thể, ngay cả khi nó không phải là cơ sở dữ liệu bạn đang sử dụng. Điều này giống như kiểm tra các cái chuông cửa trong nhà hàng xóm (với sự cho phép, tất nhiên!). Dưới đây là cách bạn làm:

SHOW TRIGGERS FROM database_name;

hoặc

SHOW TRIGGERS IN database_name;

Ví dụ, nếu chúng ta muốn xem trigger trong cơ sở dữ liệu có tên 'my_shop':

SHOW TRIGGERS FROM my_shop;

Lệnh này sẽ hiển thị tất cả các trigger trong cơ sở dữ liệu 'my_shop', ngay cả khi bạn đang làm việc trong một cơ sở dữ liệu khác.

Sử dụng với WHERE

Vậy nếu bạn muốn tìm trigger thỏa mãn một số điều kiện cụ thể? Đó là lúc câu lệnh WHERE rất hữu ích. Điều này giống như có một bộ lọc ma thuật cho trigger của bạn.

SHOW TRIGGERS WHERE condition;

Ví dụ, nếu bạn muốn xem tất cả các trigger bắn trước một INSERT:

SHOW TRIGGERS WHERE `Timing` = 'BEFORE' AND `Event` = 'INSERT';

Lệnh này sẽ hiển thị tất cả các trigger hoạt động ngay trước khi dữ liệu mới được chèn vào bảng.

Hiển thị Trigger bằng chương trình khách

Nếu bạn đang sử dụng chương trình khách MySQL như MySQL Command-Line Client, bạn có thể sử dụng tùy chọn \G để hiển thị kết quả theo chiều dọc. Điều này có thể giúp dễ đọc hơn, đặc biệt khi có nhiều thông tin.

SHOW TRIGGERS \G

Kết quả sẽ trông giống như sau:

*************************** 1. row ***************************
Trigger: update_total_price
Event: INSERT
Table: order_items
Statement: UPDATE orders SET total_price = total_price + NEW.price WHERE id = NEW.order_id
Timing: AFTER
Created: 2023-05-15 10:30:45
sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci

Định dạng theo chiều dọc này có thể đặc biệt hữu ích khi bạn đang đối phó với các trigger định nghĩa dài hoặc nhiều trigger.

Tóm tắt các phương pháp SHOW TRIGGERS

Dưới đây là bảng tóm tắt các cách khác nhau để sử dụng SHOW TRIGGERS:

Phương pháp Cú pháp Mô tả
Cơ bản SHOW TRIGGERS; Hiển thị tất cả các trigger trong cơ sở dữ liệu hiện tại
Với FROM/IN SHOW TRIGGERS FROM database_name; Hiển thị trigger từ một cơ sở dữ liệu cụ thể
Với WHERE SHOW TRIGGERS WHERE condition; Hiển thị trigger thỏa mãn các điều kiện cụ thể
Đầu ra theo chiều dọc SHOW TRIGGERS \G Hiển thị thông tin trigger theo chiều dọc

Nhớ rằng, thực hành là cách tốt nhất để thành thạo! Hãy thử các lệnh này trong môi trường MySQL của riêng bạn. Thử nghiệm với các cơ sở dữ liệu và điều kiện khác nhau. Nhanh chóng, bạn sẽ có thể điều hướng qua các trigger như một chuyên gia!

Trong những năm dạy học của tôi, tôi đã thấy rằng học sinh thường lĩnh hội các khái niệm này tốt nhất khi họ tự tạo trigger và sau đó sử dụng các lệnh này để kiểm tra chúng. Điều này giống như xây dựng của bạn một cái chuông cửa ma thuật và sau đó tìm hiểu cách nó hoạt động. Vậy, đừng ngần ngại làm脏 tay - tạo một số trigger và sau đó sử dụng các lệnh SHOW TRIGGERS để kiểm tra chúng.

Đó là tất cả cho buổi học hôm nay về SHOW TRIGGERS trong MySQL. Tôi hy vọng bạn đãEnjoyed hành trình ma thuật qua thế giới của trigger cơ sở dữ liệu. Nhớ rằng, mỗi nhà phù thủy cơ sở dữ liệu vĩ đại đều bắt đầu từ người mới bắt đầu, giống như bạn. Hãy tiếp tục thực hành, giữ vững sự tò mò, và sớm bạn sẽ có thể thực hiện các phép thuật cơ sở dữ liệu như một chuyên gia!

Credits: Image by storyset