Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng trình kích hoạt MySQL

Bài viết này mô tả cách tạo và sử dụng trình kích hoạt MySQL trên tài khoản A2 Hosting của bạn. Trình kích hoạt là các quy tắc được xác định trước được liên kết với một bảng. Chúng có thể được gọi ("được kích hoạt") trước hoặc sau khi câu lệnh SQL chèn, cập nhật hoặc xóa dữ liệu khỏi bảng được liên kết.

Bạn có thể sử dụng trình kích hoạt trong nhiều trường hợp. Ví dụ:bạn có thể sử dụng trình kích hoạt để tự động thay đổi các giá trị nhất định khi một hàng được cập nhật. Hoặc bạn có thể chỉ định một tập hợp các hành động cần thực hiện bất cứ khi nào một hàng bị xóa. Khả năng gần như là vô tận.

Tạo và sử dụng trình kích hoạt

Bạn có thể tạo và sử dụng trình kích hoạt trên bất kỳ máy chủ A2 Hosting nào sử dụng MySQL.

Thiết lập cơ sở dữ liệu thử nghiệm

Để chứng minh một ví dụ cơ bản về trình kích hoạt đang hoạt động, hãy bắt đầu bằng cách tạo cơ sở dữ liệu cho mục đích thử nghiệm. Trong câu lệnh SQL sau, hãy thay thế tên người dùng với tên người dùng tài khoản của bạn:

CREATE DATABASE username_test;
Bạn có thể chạy lệnh SQL trước (và các lệnh SQL sau) từ dòng lệnh bằng công cụ MySQL hoặc trong trình duyệt web của bạn bằng phpMyAdmin.

Nếu bạn đang sử dụng phpMyAdmin, hãy nhấp vào tên tên người dùng _test để chọn cơ sở dữ liệu. Ngược lại, nếu bạn đang sử dụng chương trình dòng lệnh mysql, hãy nhập câu lệnh SQL sau:

USE username_test;

Tiếp theo, tạo một bảng trong tên người dùng _test cơ sở dữ liệu có tên sản phẩm . Để thực hiện việc này, hãy chạy câu lệnh SQL sau:

CREATE TABLE products (prod_id INT NOT NULL AUTO_INCREMENT, prod_name VARCHAR(20) NOT NULL, prod_cost FLOAT NOT NULL DEFAULT 0.0, prod_price FLOAT NOT NULL DEFAULT 0.0, PRIMARY KEY(prod_id));

Câu lệnh SQL sau thêm một số dữ liệu mẫu vào sản phẩm bảng:

INSERT INTO products (prod_name, prod_cost, prod_price) VALUES ('Basic Widget',5.95,8.35),('Micro Widget',0.95,1.35),('Mega Widget',99.95,140.00);

Bây giờ chúng ta đã sẵn sàng để tạo một trình kích hoạt cho bảng của mình!

Tạo trình kích hoạt

Hãy tạo trình kích hoạt có tên updateProductPrice . Trình kích hoạt cụ thể này được kích hoạt bất cứ khi nào sản phẩm bảng được cập nhật. Khi sự kiện này xảy ra, trình kích hoạt sẽ kiểm tra từng hàng để xem liệu giá thành sản phẩm ( prod_cost ) giá trị đang được thay đổi. Nếu đúng như vậy, thì trình kích hoạt sẽ tự động đặt giá mới của mặt hàng ( prod_price ) đến 1,40 lần chi phí mới của mặt hàng (nói cách khác, tăng 40%).

Để tạo trình kích hoạt này, hãy chạy các câu lệnh MySQL sau:

DELIMITER $$
CREATE TRIGGER `updateProductPrice`
BEFORE UPDATE ON `products`
FOR EACH ROW
BEGIN
  IF NEW.prod_cost <> OLD.prod_cost
    THEN
      SET NEW.prod_price = NEW.prod_cost * 1.40;
  END IF ;
END$$
DELIMITER ;
DELIMITER lệnh ở đầu các câu lệnh này ngăn MySQL xử lý định nghĩa kích hoạt quá sớm. DELIMITER lệnh ở cuối các câu lệnh này trả lại quá trình xử lý về bình thường.
Sử dụng trình kích hoạt

updateProductPrice trình kích hoạt hiện đã sẵn sàng để được gọi tự động bất cứ khi nào một hàng trong sản phẩm bảng được cập nhật. Ví dụ:chạy câu lệnh SQL sau để thay đổi chi phí của Tiện ích cơ bản:

UPDATE products SET prod_cost = 7.00 WHERE prod_id = 1;

Khi bạn chạy câu lệnh SQL này, trình kích hoạt cũng sẽ kích hoạt và tự động cập nhật giá của Tiện ích cơ bản tương ứng với giá mới. Để xác minh điều này, bạn có thể chạy câu lệnh SQL sau:

SELECT * FROM products;

Câu lệnh này trả về các kết quả sau:

+---------+--------------+-----------+------------+
| prod_id | prod_name    | prod_cost | prod_price |
+---------+--------------+-----------+------------+
|       1 | Basic Widget |         7 |        9.8 |
|       2 | Micro Widget |      0.95 |       1.35 |
|       3 | Mega Widget  |     99.95 |        140 |
+---------+--------------+-----------+------------+
3 rows in set (0.00 sec)

Như bạn có thể thấy, updateProductPrice trình kích hoạt đã tự động cập nhật giá của Tiện ích cơ bản (9,80) dựa trên chi phí mới (7,00). Mặc dù đây là một ví dụ đơn giản về những gì trình kích hoạt có thể làm, nhưng bạn có thể sử dụng các kỹ thuật tương tự trong cơ sở dữ liệu của riêng mình — khả năng là gần như vô tận.

Thông tin khác

  • Để biết thêm thông tin về trình kích hoạt MySQL, vui lòng truy cập http://dev.mysql.com/doc/refman/5.0/en/triggers.html.
  • Để biết thêm thông tin về TẠO TRIGGER , vui lòng truy cập http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. node.js async / await sử dụng với MySQL

  2. Truy vấn SQL nào tốt hơn, PHÙ HỢP VỚI LẠI hay THÍCH?

  3. MySql Transpose Row thành cột và cột thành hàng

  4. Cách tạo cơ sở dữ liệu trong MySQL Workbench bằng GUI

  5. Hướng dẫn MySQL Workbench - Hướng dẫn Toàn diện về Công cụ RDBMS