簡體   English   中英

如何在MySQL中使用觸發器

[英]How to use triggers in Mysql

伙計們,我正在探索MySQL中的觸發器,我有些困惑。 我已經創建了這個表:

persons

pid #primary key
last_name
first_name

然后這個表:

employee_hierarchy

emp_id #primary key
pid #foreign key
role

並創建此觸發器:

CREATE TRIGGER after_person_insert 
AFTER INSERT ON persons 
FOR EACH ROW 
INSERT INTO employee_hierarchy 
VALUES('','LAST_INSERT_ID()','employee');

觸發已成功創建。 但是每當我嘗試插入人員表時,我都會得到一個外鍵錯誤。 所以我放棄了外鍵,這是成功的。 但是此觸發器的用途是什么呢? 您能找到一個有用的好例子嗎? 原因也許這不是旨在更新外鍵,我不知道。

無需嘗試從LAST_INSERT_ID()獲取值(順便說一句,因為在引號中插入了一個字符串),您只需要從NEW.pid讀取分配的值NEW.pid AFTER INSERT時間AFTER INSERT ,您現在可以使用它。

CREATE TRIGGER after_person_insert 
AFTER INSERT ON persons 
FOR EACH ROW 
  INSERT INTO employee_hierarchy 
  VALUES(NULL, NEW.pid, 'employee');

這是SQLFiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM