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)

疑似コードで申し訳ありませんが、これが最善の方法であるか、またはより良い方法があるかを確認するために、これを公開したかったのです。または、これを強制的に実行する方法があれば、それも受け入れられます。

質問が曖昧で申し訳ありません。

4

1 に答える 1

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) = '$'
于 2013-02-21T19:05:21.363 に答える