MySQL - 将自动插入其他表的触发器

时间:2013-10-06 01:11:50

标签: mysql sql triggers

如何创建将数据插入另一个表的触发器。

例如:我有一个department表和一个course表,course表有一个名为department_id的外键。
我将CICCT插入course表格,但CICCT表格中没有department
我的目标是使触发器在department表中添加值。我怎样才能做到这一点? 我试过这个,这是对的吗?

CREATE TRIGGER department_insert BEFORE INSERT 
ON course 
FOR EACH row 
begin 
  INSERT INTO department 
              (department_id, 
               description) 
  VALUES      (new.id_dep, 
               NULL); 
end; 

同一主题中的另一个问题是,当学生注册时,我需要做些什么才能将房间容量减少一个?

1 个答案:

答案 0 :(得分:0)

您的触发器可能如下所示

CREATE TRIGGER department_insert 
BEFORE INSERT ON course
FOR EACH ROW
  INSERT IGNORE INTO department (department_id, description)
  VALUES (NEW.id_dep, NULL);

注意:

  • 要访问要插入的行的列值,您必须使用NEW关键字

    NEW.id_dep
    ^^^
    
  • 使用IGNORE中的INSERT子句来忽略department_id表中已存在的department值。它可以大大简化您的代码。

这是 SQLFiddle 演示

为第二个问题单独发帖并指定表格模式