Nội dung bài học
1. Khái niệm về TRIGGER
Trigger là một thủ tục của câu lệnh SQL nó được thực hiện ở trên phí sever khi dữ liệu của chúng ta thay đổi thông qua các sự kiện insert, delete hoặc update, thì chúng ta phải sử dụng đến trigger để làm việc. Tuy nhiên trigger khác với Stored procedure thì trigger nó sẽ không có tham số truyền vào, mà nó sẽ thực hiện một cách tự động với sự cài đặt của người dung.
2. Cú pháp trigger
Điều quan trọng nhất là để tạo một trigger bạn sử dụng câu lệnh nhứ sau " CREATE TRIGGER"CREATE TRIGGER name_trigger ON TABLE_NAME FOR EACH ROW BEGIN câu lênh SQL END
Trong đó:
name_trigger là tên của trigger nó có nguyên tắc đặt tên theo sự kiện, theo table, theo thời gian
thời gian Before hoắc After là sự lựa chọn của mỗi bạn và mỗi bài toán đặt ra, khi nào sử dụng before hoặc After
Nếu khi bạn muốn thảy đổi dữ liệu trước sự kiện thì bạn hãy dùng sự kiện before hoặc ngược lại thì bạn sử dụng After.
Sự kiện là thể là INSERT, UPDATE hoặc DELETE.
Trình kích hoạt phải găn với một bảng cụ thể thông qua từ khóa ON.
Câu lênh SQL phải nằm giữa Begin và End.
3. Ví dụ
Để làm một ví dụ về trigger thì các bạn có thể hãy tạo một cơ sở dữ liệu trên localhost bằng Xampp hoặc orcal SQL.Câu lệnh tạo bảng nhân viên
CREATE TABLE NhanVien( id INT AUTO_INCREMENT PRIMARY KEY, manhanvien INT NOT NULL, hoten VARCHAR(50) NOT NULL, ngaythang DATETIME DEFAULT NULL, event VARCHAR(50) DEFAULT NULL );Bài toán đặt ra là giờ chúng ta hãy thêm một dữ liệu của một nhân viên sau đó chúng ta thay đổi thông tin của nhân viên đó thông qua các trường dữ liệu như (họ tên .. ) thì ngày tháng sẽ update lại thời gian chúng ta thay đổi nhân viên đó.
DELIMITER $$ CREATE TRIGGER nhanvien_update BEFORE UPDATE ON nhanvien FOR EACH ROW BEGIN INSERT INTO nhanvien SET event= 'update', manhanvien= OLD.manhanvien, Hoten= OLD.Hoten, ngaythang= NOW(); END$$ DELIMITER ;
Chúng ta có thể xem trigger bằng câu lệnh sau.
SHOW TRIGGERS
Giờ chúng ta hãy cập nhật dữ liệu của bảng nhân viên bằng câu lệnh SQL.
UPDATE nhanvien SET hoten= 'Mai thi huyen' WHERE manhanvien= 1;
Để xem câu lệnh TRIGGER được thực hiện hay chưa, thì ta sử dụng câu lênh SQL như sau.
Đây là dữ liệu ban đâu.
4. Ưu, nhược điểm của TRIGGER
- Ưu điểm
- Sử dụng Trigger để kiểm tra tính toàn vẹn của cơ sở dữ liệu.
- Trigger có thể bắt lỗi logic ở mức cơ sở dữ liệu.
- 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 giờ theo lịch.
- Trigger rất hiệu quả khi 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 thể thay thế hoàn toàn được công việc này.
No comments:
Post a Comment