MySQL触发器更新另一个表

时间:2016-12-27 01:39:00

标签: mysql database-design triggers

我正在尝试为表更新编写MySQL trigger(和插入类似的表),它将获取更新的列并更新另一个表中的相应列。

我的设置是这样的:我有一个表(A),其中有几列数值和一个记录号Primary Key。我有另一个表(B)具有相同的列名,但是具有与每个数值相关的短文本描述符以及作为引用表Foreign Key的{​​{1}}的记录号。这两个表都可能随着时间的推移而增长,以包含更多的列 - 始终相互匹配 - 每个列都有一个简单的可预测名称(暂时坚持使用整数)。所有记录均为1:1。

我希望我可以在表A上编写updateinsert的触发器来查看数字,并根据一些简单的逻辑,为其分配一个描述符。表A中的相应记录(在插入触发器的情况下插入该记录)。它变得相当复杂,因为我必须查询INFORMATION_SCHEMA.COLUMNS以识别表B中的所有当前列名,检查每个OLD与NEW以验证该列是否已更新(对于A触发器,无论如何),做一些逻辑来确定适当的描述符,然后INSERT / UPDATE表update中的相应列。我无法弄清楚如何设置一个过程/触发器,它不需要在变量中存储列名来动态构建SQL语句。当然,这在触发器中是不允许的,我已经尝试通过将动态SQL语句移动到单独的存储过程来解决这个问题。这一切都没有奏效,而且我遇到了这么多障碍,我得出的结论是,我会以完全错误的方式解决这个问题。

由于我对数据库设计很陌生,我只是不知道在这一点上要问什么问题,除了,是否有更好的方法,或者是否有修复上述方法?

与往常一样,我已经彻底搜索过,没有发现任何可以回答我的问题,但如果你看到有问题,请指出我的方式!

0 个答案:

没有答案