在INSERT到父表MySQL之后,创建该TRUNCATE子表的触发器

时间:2019-01-28 12:07:28

标签: mysql

我有一个包含以下信息的子表

CREATE TABLE child_1(
  `Event` TEXT,
  `Event Description` TEXT)

然后我有一个包含相似信息的父表

CREATE TABLE parent_1(
  `Event` TEXT,
  `Event Description` TEXT)

我需要帮助创建一个触发器,该触发器在将其子表插入父表后将其截断。运行以下代码时出现错误。

现在我写了

CREATE TRIGGER TRUNCATE_child_1     
  AFTER DELETE ON child_1
  FOR EACH ROW     
BEGIN
  INSERT INTO parent_1 VALUES (child_1.`Event`, child_1.`Event Description`)
END

1 个答案:

答案 0 :(得分:0)

如果删除了child_1中的任何行,您的触发器会尝试将parent_1的其余所有行插入child_1中。


您似乎需要的是一个存储过程,它将使插入和截断一步一步完成。像这样:

CREATE PROCEDURE move_child_to_parent();
BEGIN
  INSERT INTO partner_1 (`Event`, `Event description`)
    SELECT `Event`, `Event description`
      FROM child_1;
  TRUNCATE child_1;
END;