Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
146,56 KB
Nội dung
Trigger Trigger gì?? Là chương trình lưu trữ bên CSDL Mỗi trigger tương ứng với bảng Được kích hoạt có thao tác bảng Được tạo người dùng có quyền Trigger Xuất từ MySQL Server 5.0.2 Tại lại sử dụng Trigger?? Là chế hữu dụng đảm bảo tính tồn vẹn liệu Được kích hoạt tự động có thao tác liệu bảng ( thêm, sửa, xóa) Thay kiểm tra liệu tay 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 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 Cú pháp Trong Database khơng có trigger tên chức − Vd: Không thể tạo trigger BEFORE UPDATE AFTER UPDATE Begin…End để thực thi nhiều câu lệnh lệnh mệnh đề IF Các ghi tạo Triggers Không cho phép • Gọi thủ tục bên trigger • Tạo trigger cho khung nhìn hay bảng tạm • Sử dụng giao dịch trigger • … Quy ước đặt tên: (BEFORE | AFTER)_tableName_(INSERT| UPDATE | DELETE) Tham chiếu giá trị cột Triggers • Từ khóa NEW and OLD cho phép bạn truy cập cột dịng bị ảnh hưởng trigger ( khơng phân biệt hoa thường) Trong INSERT TRIGGER NEW.column_name sử dụng Trong DELETE TRIGGER có OLD.column_name sử dụng Trong UPDATE TRIGGER − − − NEW.column_name để tham chiếu đến cột chứa giá trị (giá trị 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 chỉnh sửa Cú pháp Tên cột với từ khóa OLD đọc khơng thay đổi Tên cột với từ khóa NEW đọc chỉnh sửa 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