【问题标题】:MySQL trigger to copy all field values to another table, how? [duplicate]MySQL触发器将所有字段值复制到另一个表,如何? [复制]
【发布时间】:2013-03-14 20:10:34
【问题描述】:

我有 2 个相同的表(100% 相同),

DELIMITER $$

CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `db`.`new_user` AFTER INSERT
ON `db`.`user`
FOR EACH ROW BEGIN
INSERT INTO db2.`users` COPY ALL INSERTED DATA
END$$

DELIMITER ;

INSER 查询应该是什么样子?我必须一一指定所有字段名称吗?

【问题讨论】:

  • 要么在INSERT 语句的VALUES 子句中明确提及每一列,要么在过滤NEW.primary_key 时使用INSERT ... SELECT
  • 这是同一个问题:stackoverflow.com/questions/57168/… 提供了一个很好的答案

标签: mysql triggers


【解决方案1】:

由于NEW 不是行标识符,而是用于引用触发器操作的行中特定列的语法方式,因此您需要指定列名

INSERT INTO db2.`users` VALUES(NEW.id, NEW.username, ...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 2015-05-17
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多