更简洁的方法来编写INSERT MySQL

时间:2016-10-03 09:54:29

标签: mysql database-trigger

我正在写一个触发器。目标是将插入记录在表名log

CREATE TABLE log (
    id int PRIMARY KEY NOT NULL AUTO_INCREMENT,
    column TINYTEXT,
    value MEDIUMTEXT,
);

我的数据库充满了几个表,比如客户端。我写了一个触发器来记录客户端数据,如下所示:

CREATE DEFINER=`root`@`%` TRIGGER `client_after_insert` AFTER INSERT ON `t_client` FOR EACH ROW 
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE CONTINUE HANDLE FOR NOT FOUND SET done = TRUE;

    INSERT INTO log(column, value) VALUES
    ('name', NEW.name),
    ('surname', NEW.surname),
    ('email', NEW.email);
    # etc...
END

问题

是否有一种可靠的方法来遍历游标中的每一列,在一个FETCH colCur INTO colNameget NEW.[colName]中获取colName?

目标是自动获取新值FOR EACH COLUMNS。这样,如果我们更改列的名称,我们也不必在触发器中更改它。

0 个答案:

没有答案