intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Trigger

Chia sẻ: Kieu Thu Trang | Ngày: | Loại File: PDF | Số trang:15

136
lượt xem
17
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trigger là gì?? Là các chương trình lưu trữ bên trong CSDL. Mỗi trigger tương ứng với một bảng. Được kích hoạt khi có thao tác trên bảng. Được tạo bởi người dùng có quyền Trigger. Xuất hiện từ MySQL Server 5.0.2 .Tại sao lại sử dụng Trigger?? Là cơ chế hữu dụng đảm bảo tính toàn vẹn dữ liệu. Được kích hoạt tự động khi có các thao tác trên dữ liệu của bảng ( thêm, sửa, xóa) Thay thế kiểm tra dữ liệu bằng tay...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Trigger

  1. Trigger
  2. Trigger là gì??  Là các chương trình lưu trữ bên trong CSDL.  Mỗi trigger tương ứng với một bảng.  Được kích hoạt khi có thao tác trên bảng.  Được tạo bởi người dùng có quyền Trigger.  Xuất hiện từ MySQL Server 5.0.2
  3. Tại sao lại sử dụng Trigger?? Là cơ chế hữu dụng đảm bảo tính toàn vẹn dữ liệu. Được kích hoạt tự động khi có các thao tác trên dữ liệu của bảng ( thêm, sửa, xóa) Thay thế kiểm tra dữ liệu bằng tay
  4. Cú pháp CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body Hoặc CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN ... END
  5. Cú pháp  Trong đó: trigger_name: tên trigger trigger_time: thời gian thực thi trigger − BEFORE − AFTER trigger_event: Kiểu câu lệnh kích hoạt trigger − INSERT − UPDATE − DELETE
  6. Cú pháp  Trong một Database không có 2 trigger cùng tên hoặc cùng chức năng. − Vd:  Không thể tạo 2 trigger BEFORE UPDATE hoặc AFTER UPDATE.  Begin…End để thực thi nhiều câu lệnh trong lệnh trong mệnh đề IF
  7. Các ghi chú khi tạo Triggers Không cho phép • Gọi một thủ tục bên trong trigger • Tạo trigger cho khung nhìn hay bảng tạm • Sử dụng giao dịch trong trigger • …. Quy ước đặt tên: (BEFORE | AFTER)_tableName_(INSERT| UPDATE | DELETE)
  8. Tham chiếu giá trị cột trong Triggers • Từ khóa NEW and OLD cho phép bạn truy cập các cột trong những dòng bị ảnh hưởng bởi trigger ( không phân biệt hoa thường).  Trong INSERT TRIGGER chỉ NEW.column_name được sử dụng.  Trong DELETE TRIGGER chỉ có OLD.column_name được sử dụng  Trong UPDATE TRIGGER − NEW.column_name để tham chiếu đến cột chứa giá trị mới (giá trị mới thêm vào) − OLD.column_name để tham chiếu đến cột chứa giá trị cũ ( đã tồn tại) − Trong Before Triggers, bạn có thể chỉnh sửa
  9. Cú pháp  Tên cột với từ khóa OLD chỉ đọc không thay đổi được  Tên cột với từ khóa NEW có thể đọc và chỉnh sửa
  10. Ví dụ: Trigger Insert Delimiter || drop trigger if exists mon_hoc_insert|| create trigger mon_hoc_insert before INSERT on monhoc for each row begin if new.so_tiet
  11. Ví dụ: Trigger Update Delimiter || drop trigger if exists khoi_thi_update|| create trigger khoi_thi_update BEFORE UPDATE on diemthi for each row begin if (new.diem 10) then set new.diem=null; end if; end|| Delimiter;
  12. delimiter | drop trigger if exists update_so_tiet| create trigger update_so_tiet before update on mon_hoc for each row begin if new.so_tiet
  13. Xem thông tin các triggers của CSDL • Trên tất cả các CSDL SELECT * FROM Information_Schema.Triggers • Trên CSDL chỉ định SELECT * FROM Information_Schema.Triggers WHERE Trigger_schema = 'database_name'; • Trên một bảng CSDL SELECT * FROM Information_Schema.Triggers WHERE Trigger_schema = 'database_name' AND Event_object_table = 'table_name';
  14. Xoá một triggers DROP TRIGGER table_name.trigger_name Lưu ý: MySQL không cung cấp câu lệnh để chỉnh sửa trigger. Để chỉnh sửa trigger, đầu tiên bạn phải xoá trigger sau đó tạo lại.
  15. Cảm ơn
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
10=>1