首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 觸發器完整實戰指南:建立、觸發、查看、刪除與跨表同步案例

     編輯:MySQL 綜合教學

MySQL 觸發器完整實戰指南:建立、觸發、查看、刪除與跨表同步案例

語法結構

CREATE [TEMPORARY] TRIGGER trigger_name
[BEFORE | AFTER] [INSERT | DELETE | UPDATE | UPDATE OF columns]
ON table_name
FOR EACH ROW
trigger_body

實戰演示

1. 建立觸發器:INSERT 後同步寫入 info 表

CREATE TRIGGER stu_trigger AFTER INSERT
ON students
FOR EACH ROW
INSERT INTO info(stu_id, info) VALUES (NEW.id, '');

2. 觸發事件驗證

INSERT INTO students(id, name, age) VALUES (4, 'Zeus', 56400);

檢查 students 表新增一行;info 表自動新增 stu_id=4 記錄(info 為空)。

3. 查看觸發器元數據

SELECT * FROM information_schema.triggers;

可見 TRIGGER_SCHEMA、TRIGGER_NAME、EVENT_MANIPULATION、EVENT_OBJECT_TABLE、ACTION_STATEMENT 等資訊。

4. 刪除觸發器

DROP TRIGGER stu_trigger;

再次查詢 information_schema.triggers 為空,確認刪除成功。

進階:跨表關聯觸發器更新

建立關聯視圖觸發器

CREATE VIEW stu_view3 AS
SELECT s.id, s.name, s.age, i.info
FROM students s, info i
WHERE i.stu_id = s.id;

更新視圖驅動基表同步

UPDATE stu_view3 SET age=800 WHERE id=1;

視圖與 students 基表 age 同步更新為 800,驗證可更新視圖的雙向同步特性。

總結

  • 觸發器語法與操作表一致,屬於特殊的虛擬表。
  • 視圖名不可與現有表重名。
  • 可更新視圖修改會回寫基表,跨表關聯視圖同樣生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved