插入触发器

时间:2013-10-24 18:03:05

标签: mysql triggers insert

我在这里遇到了一个问题,在MYSQL中我有:

1-table称为“norte”,它有一个名为“nortel”的列 2表称为“bitacora”,它有一个名为“telefono”的列

即时触发复制此信息,例如,每当我向“norte”表添加内容时,我希望将其自动复制到bitacora表,我不知道我错在哪里这是我的触发器

CREATE TRIGGER insertar AFTER INSERT ON norte
FOR EACH ROW 
BEGIN
INSERT INTO bitacora SET telefono = NEW.nortel 
END; 

这里的问题是它说意外的结束期待';'

但如果我删除了“END”,则说

CREATE TRIGGER insertar AFTER INSERT ON norte
FOR EACH ROW 
BEGIN
INSERT INTO bitacora SET telefono = NEW.nortel;
  

意外的END_OF_INPUT期待';'

3 个答案:

答案 0 :(得分:1)

您需要更改分隔符。

delimiter |
CREATE TRIGGER insertar AFTER INSERT ON norte
FOR EACH ROW 
BEGIN
    INSERT INTO bitacora (telefono) values (NEW.nortel);
END
|
delimiter ;

否则,DB认为您的触发器语句在第一个;结束,然后它将不完整。

答案 1 :(得分:0)

您在NEW.nortel之后缺少“; ”:

应该是:

CREATE TRIGGER insertar AFTER INSERT ON norte 
FOR EACH ROW 
BEGIN 
  INSERT INTO bitacora SET telefono = NEW.nortel; 
END;

sqlfiddle demo

答案 2 :(得分:0)

DELIMITER $$


CREATE TRIGGER row_update_trigger  AFTER INSERT ON returns_loading_dc 
  FOR EACH ROW BEGIN
    INSERT INTO   Returns_receiving_Fc 
    set 
      Var_key=NEW.Var_key,
      Product_Title=NEW.Product_Title,
      Building=NEW.Building,
      Hub_ID=NEW.hub_id,
      JPIN=NEW.JPIN,
      Tagging_Required=NEW.Tagging_Required,
      Food_Non_Food=NEW.Food_Non_Food,
      Qty_loaded_from_hub=NEW.Total_Quantity_Loaded;


END $$ need help