2013-02-21 46 views
0

我有一个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) 

很抱歉的伪代码,但我希望把这个在那里,看看这是最好的方式做这个或者如果有更好的方法。或者,如果有一种方法可以强制执行,这也是可以接受的。

感谢和抱歉,我的问题很浑浊。

+0

这似乎是它的工作,但有一点要注意的是,该触发器将用于添加''$来两次(一次运行'',一次用于删除''$'')。 – gmm 2013-02-21 19:07:51

+0

这是真的,我不介意它会被解雇两次,我只是想执行。 – weggie 2013-02-21 20:28:06

回答

1

像这样的事情

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

然后

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

你一个人在DB或可以更行中添加或更新。我希望不是。如果是的话,你可以查询像这样(仍然不完美,但可以帮助)

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

谢谢,我会试试看看我得到了什么。 – weggie 2013-02-21 20:28:53

相关问题