MySQL的觸發器可用于執行各種任務,如在插入或更新行時更新其他表的行或計算一些信息。在本文中,我們將學習如何使用MySQL觸發器計算兩列的總和。
首先,我們需要創建一個表來存儲數據。我們將創建一個名為“orders”的表,其中有兩列:一個是“price”,另一個是“quantity”:
CREATE TABLE orders ( id INT NOT NULL AUTO_INCREMENT, price DECIMAL(10, 2) NOT NULL, quantity INT NOT NULL, PRIMARY KEY (id) );
現在我們需要創建一個觸發器來計算這兩列的總和并將結果存儲在另一個表中。我們將創建一個名為“order_total”的表來保存結果。以下是創建觸發器的代碼:
CREATE TRIGGER update_order_total AFTER INSERT ON orders FOR EACH ROW BEGIN INSERT INTO order_total (total) VALUES (NEW.price * NEW.quantity); END;
這將在每次插入新行時執行,計算“price”和“quantity”列的乘積并將結果插入到“order_total”表的“total”列中。
如果我們要更新現有的行并自動更新總和,則需要使用“BEFORE UPDATE”觸發器。以下是創建這種觸發器的代碼:
CREATE TRIGGER update_order_total BEFORE UPDATE ON orders FOR EACH ROW BEGIN SET NEW.total = NEW.price * NEW.quantity; END;
這將在每次更新現有行時執行,并在更新完成之前計算新的總和。
使用MySQL觸發器可以方便地計算和存儲各種信息。上面的觸發器只是一個例子,您可以根據需要修改代碼和條件。