1. Trang chủ
  2. » Thể loại khác

trigger trong sqlite

3 246 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

http://vietjack.com/sqlite/index.jsp                                                                                                              Copyright  ©  vietjack.com     Trigger SQLite Các Trigger SQLite hàm callback, mà tự động thực hiện/triệu hồi xuất kiện sở liệu Sau số điểm quan trọng Trigger SQLite: • Trigger SQLite xác định để kích hoạt DELETE, INSERT UPDATE bảng liệu cụ thể UPDATE xuất cột cụ thể trông bảng • Tại thời điểm này, SQLite hỗ trợ Trigger dạng FOR EACH ROW, không hỗ trợ Trigger dạng FOR EACH STATEMENT Vì thế, việc xác định FOR EACH ROW tùy ý • Cả mệnh đề WHERE hành động Trigger truy cập phần tử hàng chèn, bị xóa cập nhật sử dụng tham chiếu theo mẫu NEW.column-name OLD.column-name, với column-name tên cột từ bảng mà Trigger gắn kết với • Nếu cung cấp mệnh đề WHERE, lệnh SQLite xác định thực thi cho hàng mà mệnh đề WHERE true Nếu khơng có mệnh đề WHERE nào, lệnh SQLite thực thi cho tất hàng • Từ khóa BEFORE AFTER xác định hành động Trigger thực thi • Các Trigger tự động bị xóa bảng, mà chúng gắn kết với, bị xóa • Bảng để sửa đổi phải tồn sở liệu với bảng view mà Trigger gắn kết • Một hàm SQLite đặc biệt hàm RAISE() sử dụng bên Trigger để tạo ngoại lệ (exception) Cú pháp Cú pháp để tạo Trigger SQLite sau: CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name Trigger logic goes here END; ON table_name BEGIN http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/sqlite/index.jsp                                                                                                              Copyright  ©  vietjack.com     Ở đây, event_name INSERT, DELETE UPDATE bảng table_name Bạn xác định FOR EACH ROW cách tùy ý sau tên bảng Sau cú pháp để tạo Trigger hoạt động UPDATE nhiều cột cụ thể bảng: CREATE TRIGGER trigger_name [BEFORE|AFTER] UPDATE OF column_name table_name BEGIN Trigger logic goes here END; ON Ví dụ Giả sử tình bạn muốn dùng tính Audit Trial (kiểm tra dấu vết) cho ghi chèn bảng COMPANY tạo (xóa bảng bạn có) sqlite> CREATE TABLE COMPANY( ID INT PRIMARY KEY TEXT NOT NULL, AGE INT NOT NULL, CHAR(50), SALARY REAL ); NOT NULL, ADDRESS NAME Để thực Audit Trial, tạo bảng AUDIT, với thông báo log chèn vào entry tạo ghi vào bảng COMPANY sqlite> CREATE TABLE AUDIT( NULL ); EMP_ID INT NOT NULL, ENTRY_DATE TEXT NOT Ở đây, ID Record ID bảng AUDIT, EMP_ID ID mà đến từ bảng COMPANY DATE giữ Timestamp ghi tạo bảng COMPANY Bây giờ, tạo Trigger bảng COMPANY sau: sqlite> CREATE TRIGGER audit_log AFTER INSERT ON COMPANY BEGIN AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime('now')); END; INSERT INTO Lúc này, bắt đầu công việc thực sự: bắt đầu chèn ghi vào bảng COMPANY cho kết tạo ghi audit log bảng AUDIT Giả sử tạo ghi sau: sqlite> INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); Trong bảng COMPANY, ta có ghi sau: http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/sqlite/index.jsp                                                                                                              Copyright  ©  vietjack.com     ID -California NAME -20000.0 AGE ADDRESS SALARY -Paul 32 Cùng lúc đó, ghi tạo bảng AUDIT Bản ghi kết Trigger, mà tạo hoạt động INSERT bảng COMPANY Tương tự, bạn tạo Trigger hoạt động UPDATE DELETE tùy theo yêu cầu bạn EMP_ID 06:26:00 ENTRY_DATE - 2013-04-05 Liệt kê Trigger SQLite Bạn liệt kê Trigger từ bảng sqlite_masert sau: sqlite> SELECT name FROM sqlite_master WHERE type = 'trigger'; Lệnh liệt kê entry là: name audit_log Nếu bạn muốn liệt kê Trigger bảng cụ thể, bạn sử dụng mệnh đề AND với tên bảng, sau: sqlite> SELECT name FROM sqlite_master WHERE type = 'trigger' AND tbl_name = 'COMPANY'; Lệnh liệt kê entry là: name audit_log Xóa Trigger SQLite Lệnh DROP SQLite sử dụng để xóa Trigger tồn sqlite> DROP TRIGGER trigger_name;   http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     ... sau: sqlite> SELECT name FROM sqlite_ master WHERE type = 'trigger' AND tbl_name = 'COMPANY'; Lệnh liệt kê entry là: name audit_log Xóa Trigger SQLite Lệnh DROP SQLite sử dụng để xóa Trigger. .. SQLite Bạn liệt kê Trigger từ bảng sqlite_ masert sau: sqlite> SELECT name FROM sqlite_ master WHERE type = 'trigger' ; Lệnh liệt kê entry là: name audit_log Nếu bạn muốn liệt kê Trigger bảng cụ... sau tên bảng Sau cú pháp để tạo Trigger hoạt động UPDATE nhiều cột cụ thể bảng: CREATE TRIGGER trigger_name [BEFORE|AFTER] UPDATE OF column_name table_name BEGIN Trigger logic goes here END; ON

Ngày đăng: 02/12/2017, 11:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN