Hướng dẫn trigger delete trong mysql - kích hoạt xóa trong mysql
Show I. Trigger là gì?Trigger là một đối tượng được định danh trong CSDL và được gắn chặt với một sự kiện xảy ra trên một bảng nào đó (điều này có nghĩa là nó sẽ được tự động thực thi khi xảy ra một sự kiện trên một bảng). Các sự kiện này bao gồm: INSERT, UPDATE hay DELETE một bảng. là một đối tượng được định danh trong CSDL và được gắn chặt với một sự kiện xảy ra trên một bảng nào đó (điều này có nghĩa là nó sẽ được tự động thực thi khi xảy ra một sự kiện trên một bảng). Các sự kiện này bao gồm: INSERT, UPDATE hay DELETE một bảng. Trigger được đưa vào MySQL từ phiên bản 5.0.2 được đưa vào MySQL từ phiên bản 5.0.2 II. Tại sao lại sử dụng Trigger?Trigger được thực thi tự động khi xuất hiện một hành động thay đổi trong bảng, nên người ta có thể ứng dụng trigger để tạo ra các công việc tự động thay cho việc phải làm thủ công bằng tay như: kiểm tra dữ liệu, đồng bộ hóa dữ liệu, đảm bảo các mối quan hệ giữa các bảng... được thực thi tự động khi xuất hiện một hành động thay đổi trong bảng, nên người ta có thể ứng dụng trigger để tạo ra các công việc tự động thay cho việc phải làm thủ công bằng tay như: kiểm tra dữ liệu, đồng bộ hóa dữ liệu, đảm bảo các mối quan hệ giữa các bảng... III. Ưu nhược điểm của trigger- Ưu điểm: – Dễ dàng kiểm tra tính toàn vẹn của csdl. – Trigger có thể bắt lỗi logic nghiệp vụ (business logic) ở mức csdl. – Có thể dùng trigger là một cách khác để thay thế việc thực hiện những công việc hẹn theo giờ theo lịch. – Trigger rất hiệu quả khi được sử dụng để kiểm soát những thay đổi của dữ liệu trong bảng. - Nhược điểm: – Trigger chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này. – Trigger hoạt động ngầm ở trong csdl, không hiển thị ở tầng giao diện. Do đó, khó chỉ ra được điều gì xảy ra ở tầng csdl. – Trigger thực hiện các update lên bảng dữ liệu vì thế nó làm gia tăng lượng công việc lên csdl và làm cho hệ thống chạy chậm. IV. Hoạt động của trigger trong MySQLKhi bạn tạo ra một trigger trong MySQL thì định nghĩa của nó được lưu trong tập tin có phần mở rộng là ‘.TRG’ tại thư mục của csdl.
Chúng ta có thể mở ra và chỉnh sửa. Một số giới hạn cần chú ý khi sử dụng trigger:
V. Tạo triggerCú pháp:
Giải thích:
Chúng ta đã có bảng products trong csdl với cấu trúc như sau:
Viết trigger, bất cứ khi nào xảy ra việc thay đổi dữ liệu trên bảng products thì những thay đổi đó sẽ được ghi nhận và được đưa vào lưu ở một bảng khác. Chúng ta tạo một bảng mới thực hiện chức năng này với cấu trúc như sau:
Để theo dõi nhưng thay đổI chỉnh sửa của products chúng ta tạo ra một trigger theo dõi lệnh update trên trường dữ liệu này.
Bây giờ chúng ta test thử câu lệnh update:
sau đó ta thấy table products đã thay đổi
và table products_tmp đã lưu item đã chỉnh sửa.
oke, vậy là trigger đã tạo thành công. VI. Quản lý trigger trong MySQLQuản lý các trigger được tạo ra trong csdl là một thao tác cần nắm vững. MySQL cho phép chúng ta xem danh sách các trigger có trong csdl bằng các câu lệnh sau:
KL: Việc quản lý data có dung lượng lớn không hề đơn giản, không phải ai cũng sử dụng 1 cách thuần thục. Rất có thể sẽ có người xóa nhầm trong CSDL, Sẽ gây ảnh hưởng không nhỏ, nếu dữ liệu đó quan trọng. Dùng trigger có thể lấy lại những dữ liệu đã bị xóa. Có thể theo dõi ai đó xóa, sửa, xóa ngày nào , giờ nào. Tuy nhiên chúng ta cũng cần lưu ý, tạo nhiều Trigger thực hiện các update lên bảng dữ liệu nó làm gia tăng lượng công việc lên csdl và làm cho hệ thống chạy chậm. |