Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan pemicu MySQL

Artikel ini menjelaskan cara membuat dan menggunakan pemicu MySQL di akun A2 Hosting Anda. Pemicu adalah aturan yang telah ditentukan sebelumnya yang terkait dengan tabel. Mereka dapat dipanggil ("dipicu") sebelum atau setelah pernyataan SQL menyisipkan, memperbarui, atau menghapus data dari tabel terkait.

Anda dapat menggunakan pemicu dalam berbagai skenario. Misalnya, Anda dapat menggunakan pemicu untuk secara otomatis mengubah nilai tertentu saat baris diperbarui. Atau Anda dapat menentukan serangkaian tindakan yang harus dilakukan setiap kali sebuah baris dihapus. Kemungkinannya hampir tidak terbatas.

Membuat dan menggunakan pemicu

Anda dapat membuat dan menggunakan pemicu di server A2 Hosting mana pun yang menggunakan MySQL.

Menyiapkan database pengujian

Untuk mendemonstrasikan contoh dasar pemicu yang sedang beraksi, mari kita mulai dengan membuat database untuk tujuan pengujian. Dalam pernyataan SQL berikut, ganti nama pengguna dengan nama pengguna akun Anda:

CREATE DATABASE username_test;
Anda dapat menjalankan perintah SQL sebelumnya (dan perintah SQL berikut) dari baris perintah menggunakan alat MySQL, atau di browser web Anda menggunakan phpMyAdmin.

Jika Anda menggunakan phpMyAdmin, klik nama nama pengguna _test untuk memilih database. Jika tidak, jika Anda menggunakan program baris perintah mysql, ketikkan pernyataan SQL berikut:

USE username_test;

Selanjutnya, buat tabel di nama pengguna _test basis data bernama produk . Untuk melakukannya, jalankan pernyataan SQL berikut:

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));

Pernyataan SQL berikut menambahkan beberapa contoh data ke produk tabel:

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);

Sekarang kita siap membuat pemicu untuk tabel kita!

Membuat pemicu

Mari buat pemicu bernama updateProductPrice . Pemicu khusus ini diaktifkan setiap kali produk tabel diperbarui. Saat peristiwa ini terjadi, pemicu memeriksa setiap baris untuk melihat apakah biaya produk (biaya_produk ) nilai sedang diubah. Jika ya, maka pemicu secara otomatis menyetel harga baru item (prod_price ) hingga 1,40 kali biaya baru item (dengan kata lain, markup 40%).

Untuk membuat pemicu ini, jalankan pernyataan MySQL berikut:

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 perintah di awal pernyataan ini mencegah MySQL memproses definisi pemicu terlalu cepat. DELIMITER perintah di akhir pernyataan ini mengembalikan pemrosesan ke normal.
Menggunakan pemicu

updateProductPrice pemicu sekarang siap dipanggil secara otomatis setiap kali ada baris di produk tabel diperbarui. Misalnya, jalankan pernyataan SQL berikut untuk mengubah biaya Widget Dasar:

UPDATE products SET prod_cost = 7.00 WHERE prod_id = 1;

Saat Anda menjalankan pernyataan SQL ini, pemicunya juga aktif, dan secara otomatis memperbarui harga Widget Dasar sebanding dengan biaya baru. Untuk memverifikasi ini, Anda dapat menjalankan pernyataan SQL berikut:

SELECT * FROM products;

Pernyataan ini mengembalikan hasil berikut:

+---------+--------------+-----------+------------+
| 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)

Seperti yang Anda lihat, updateProductPrice trigger secara otomatis memperbarui harga Widget Dasar (9,80) berdasarkan biaya baru (7,00). Meskipun ini adalah contoh sederhana tentang apa yang dapat dilakukan oleh pemicu, Anda dapat menggunakan teknik yang sama di database Anda sendiri—kemungkinannya hampir tidak terbatas.

Informasi Lebih Lanjut

  • Untuk informasi lebih lanjut tentang pemicu MySQL, kunjungi http://dev.mysql.com/doc/refman/5.0/en/triggers.html.
  • Untuk informasi selengkapnya tentang BUAT PEMICU pernyataan, silakan kunjungi 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. Bagaimana cara mengubah zona waktu server MySQL

  2. apakah ada fungsi group_concat di ms-access?

  3. Pilih data antara rentang tanggal/waktu

  4. Cara Membuat Tabel Pivot di MySQL

  5. Pernyataan yang disiapkan WordPress dengan kondisi IN()