mySQL 觸發(fā)器是常用的數(shù)據(jù)庫技術(shù),它能夠在特定的操作后自動執(zhí)行一些指定的任務(wù)。通過它實現(xiàn)電子郵件通知功能可以讓我們輕松地實現(xiàn)數(shù)據(jù)庫操作異常的實時提示。
DELIMITER $$ CREATE TRIGGER after_insert_customer AFTER INSERT ON customers FOR EACH ROW BEGIN DECLARE customer_email VARCHAR(255); DECLARE email_subject VARCHAR(255); DECLARE email_body TEXT; SELECT email INTO customer_email FROM customers WHERE id = NEW.id; SET email_subject = "Welcome to our online store"; SET email_body = CONCAT('Dear ', NEW.name, ',\n\n', 'Welcome to our online store! \n', 'We are glad to have you on board. \n\n', 'Sincerely, \n', 'The Online Store team'); CALL sp_send_email(customer_email, email_subject, email_body); END$$ DELIMITER ;
以上代碼展示了創(chuàng)建一個在 customers 表中進行 INSERT 操作后自動觸發(fā)的觸發(fā)器。觸發(fā)器會獲取被插入的新記錄的 email 字段的值,作為接收郵件的用戶。然后,根據(jù)郵件模板拼接郵件主題和正文,最后調(diào)用一個自定義的存儲過程 sp_send_email 發(fā)送郵件。
通過這種方式,我們可以實現(xiàn)在每次向 customers 表中插入記錄時,自動發(fā)送一封歡迎郵件給新用戶。我們也可以根據(jù)需求,創(chuàng)建不同的觸發(fā)器,比如在訂單表中的 INSERT 操作后自動發(fā)送訂單確認郵件。