将数据添加到列以激活触发器然后将其删除

时间:2013-02-21 18:26:53

标签: mysql sql

我有一个mysql表,它有一个触发器,在执行更新时会激活。我想通过在姓氏中添加一个值来强制执行此触发器,但仅限于特定用户。

我的想法是让这项工作,我需要取lname的价值并添加一些东西,如'$'。这将使触发器运行,然后重新运行一些SQL以从lname中删除'$'。

我认为它看起来像这样:

Update table set lname = (current_value_OF_LNAME & "$")
where active = 1

然后

Update table set lname = (Remove($ from current_value_OF_LNAME)

对于伪代码很抱歉,但我想把它放在那里,看看这是否是最好的方法,或者是否有更好的方法。或者,如果有办法强迫它运行也是可以接受的。

感谢和抱歉这些问题很混乱。

1 个答案:

答案 0 :(得分:1)

像这样的东西

Update table set lname = concat(lname,'$') 
 where active = 1

然后

Update table set lname = substr(lname,1,length(lname)-1)
 where active = 1

您是否独自在数据库中,或者可以添加或更新更多行。我希望不是。如果是,你可以这样查询(仍然不完美但有帮助)

Update table set lname = substr(lname,1,length(lname)-1)
 where substr(test,-1) = '$'