MySQL-Trigger无法正常工作

时间:2014-05-26 13:35:50

标签: mysql triggers


我在mysql触发器中获取一些数据时遇到问题。

我将表Artikel的列名存储在一个名为Artikelupdate的单独表中。以下代码中的subquerys获取Artikel的最后四个列名。

这部分代码无法正常工作:

   SELECT (SELECT `name` FROM `Artikelupdate` ORDER BY `id` DESC LIMIT 0, 1) INTO @s24_new FROM `Artikel` WHERE `id`=@id_new;   
   SELECT (SELECT `name` FROM `Artikelupdate` ORDER BY `id` DESC LIMIT 1, 1) INTO @afi_new FROM `Artikel` WHERE `id`=@id_new;   
   SELECT (SELECT `name` FROM `Artikelupdate` ORDER BY `id` DESC LIMIT 2, 1) INTO @afi_old FROM `Artikel` WHERE `id`=@id_new;   
   SELECT (SELECT `name` FROM `Artikelupdate` ORDER BY `id` DESC LIMIT 3, 1) INTO @s24_old FROM `Artikel` WHERE `id`=@id_new;   
到目前为止我测试了什么:
1. subquerys工作并获得正确的值(列名)
2. @id_new已设置并存在于Artikel中,因此" WHERE id = @ id_new"也在努力。

我的问题:
@ s24_new,@ afi_new,..永远不会被设置。为什么?是不是可以通过SELECT定义列?
是否有任何其他方法可以在没有"硬编码"的情况下将此数据放入mysql变量中列名?

请随时询问进一步的信息。

谢谢你的帮助。

修改:

   SELECT (SELECT `name` FROM `Artikelupdate` ORDER BY `id` DESC LIMIT 0, 1) INTO @s24_new FROM `Artikel` WHERE `id`=@id_new;    

没有将列的值输入@ s24_new,它获取列名(子查询的结果)

0 个答案:

没有答案