在OLD和NEW中循环列

时间:2011-11-17 15:37:30

标签: mysql triggers

我想做一些我认为相当简单的事情。生成以逗号分隔的列表,这些列在更新中已更改。例如表foo:

UPDATE foo SET bar = 8, zoo = "it's a zoo in here";

在foo上使用AFTER更新触发器我应该能够遍历表格列,将OLD.colNEW.col进行比较以确定它是否已更改,并生成字符串“bar ,动物园“。

如果您对列名进行硬编码很容易,但这对我来说不是一个选项。 获取列名称很简单,但如何动态获取NEWOLD中的值以进行比较?有什么办法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用information_schema视图动态查询表中的列。然后,您可以使用游标迭代结果集。这可能很棘手。我不知道触发器中是否支持游标。