MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang menyokong banyak operasi dan fungsi yang berbeza. Salah satunya ialah teknik pencetus data, yang boleh memantau dan memproses perubahan data dengan menentukan pencetus dalam pangkalan data. Artikel ini akan memperkenalkan prinsip asas, penggunaan dan contoh teknik mencetuskan data dalam MySQL.
1. Prinsip asas pencetus data
Pencetus data dalam MySQL ialah jenis prosedur tersimpan khas yang boleh ditakrifkan dan dilaksanakan dalam pangkalan data. Ia berkait rapat dengan jadual dan apabila peristiwa tertentu (seperti sisipan, kemas kini atau padam) berlaku, pelaksanaan pencetus yang sepadan akan dicetuskan.
Prinsip asas pencetus data dalam MySQL adalah seperti berikut:
2. Penggunaan pencetus data
Teknik pencetus data boleh digunakan dalam pelbagai senario, seperti:
3. Contoh pencetus data MySQL
Untuk menerangkan penggunaan pencetus data dengan lebih jelas, beberapa contoh pencetus data MySQL diberikan di bawah.
Apabila data dimasukkan atau dikemas kini dalam jadual tertentu, pencetus boleh digunakan untuk menyemak integriti data dan memastikan hanya data yang memenuhi syarat yang ditentukan Data boleh dimasukkan atau dikemas kini.
Sebagai contoh, pencetus berikut akan menyemak sama ada harga dalam jadual Produk adalah positif dan menghalang pemasukan data atau kemas kini jika harga negatif.
CREATE TRIGGER check_price BEFORE INSERT ON Product FOR EACH ROW IF NEW.price < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Price should be positive'; END IF;
Anda boleh menggunakan pencetus untuk memproses logik perniagaan berkaitan secara automatik.
Sebagai contoh, pencetus berikut akan mengurangkan inventori secara automatik apabila data dimasukkan ke dalam jadual Pesanan untuk memastikan ketersediaan inventori.
CREATE TRIGGER update_stock AFTER INSERT ON Order FOR EACH ROW UPDATE Product SET stock = stock - NEW.quantity WHERE id = NEW.product_id;
Pencetus boleh digunakan untuk membolehkan langkah keselamatan seperti penyulitan, penyahsulitan atau sandaran data, dsb.
Sebagai contoh, pencetus berikut akan menyulitkan dan menyimpan harga secara automatik dalam medan tertentu Price_Encrypt apabila data dimasukkan atau dikemas kini dalam jadual Produk.
CREATE TRIGGER encrypt_price BEFORE INSERT OR UPDATE ON Product FOR EACH ROW SET NEW.Price_Encrypt = AES_ENCRYPT(NEW.price,'secret_key');
Perubahan data boleh direkodkan menggunakan pencetus dan disimpan dalam log berasingan atau jadual audit untuk pengauditan dan penjejakan seterusnya.
Sebagai contoh, pencetus berikut akan merekodkan perubahan data dalam jadual Customer_Log apabila data dimasukkan, dikemas kini atau dipadamkan dalam jadual Pelanggan.
CREATE TRIGGER log_customer_change AFTER INSERT ON Customer FOR EACH ROW INSERT INTO Customer_Log (id, action, changed_by) VALUES (NEW.id, 'Inserted', 'User'); CREATE TRIGGER log_customer_change AFTER UPDATE ON Customer FOR EACH ROW INSERT INTO Customer_Log (id, action, changed_by) VALUES (NEW.id, 'Updated', 'User'); CREATE TRIGGER log_customer_change AFTER DELETE ON Customer FOR EACH ROW INSERT INTO Customer_Log (id, action, changed_by) VALUES (OLD.id, 'Deleted', 'User');
4. Ringkasan
Teknik mencetuskan data ialah salah satu fungsi berkuasa dalam MySQL, yang boleh membantu pengguna mengendalikan perubahan data dengan cepat dan cekap dalam senario tertentu. Artikel ini memperkenalkan prinsip asas, penggunaan dan contoh pencetus data dalam MySQL, dan berharap dapat membantu pembaca.
Atas ialah kandungan terperinci Kemahiran mencetus data dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!