2017-07-03 10 views
-1

トピック表を更新:ID、名前、duedate、STARTTIME、期間、地位のMySQL:テーブルの列の値にトリガを書くと同じと別のテーブル

は私がするとき 完成にこのテーブルのステータスを変更する必要があります開始時間+継続時間は現在の時間に達します。 ステータスが更新された場合は、別のカラムステータスも完全に変更する必要があります。

+0

何を試しましたか?コードを表示する。 SOは**コード作成サービスではありません**。 –

+0

私はこれがMysqlで可能であることを知る必要があります。トリガーが最適なソリューションになります。現在の時刻に関連する列の値に基づいてトリガーを使用する方法を理解できません。 – gaurav

答えて

0

starttime + durationが現在の時間に達したときに、このテーブルのステータスをcompleteに変更する必要があります。

いいえ、トリガー機能はこれをサポートできません。代わりに、スレッドを実行するバックグラウンドアプリケーションを作成して、トピックテーブルを定期的に、つまり1分ごとに更新することができます。
あなたは、バックグラウンドのアプリや「サービス」でこのSQL文を使用することができます。ステータスが更新された場合には

update Topic set status = 'completed' where (starttime+duration)<=now() and not status = 'completed'; 

を、私はあまりにも完全 として別の列のステータスを変更する必要があります。

私はそれが間違って理解していない場合は、トリガー機能を使用してサポートすることができます。

+0

ありがとうございます。私がトリガーではなくコードを使用してタスクを実行している場合は、コードを使用してすべてのタスクを実行する方が良いでしょう。 – gaurav

+0

特にデバッグ時に便利なので、できるだけトリガー機能を使用することをお勧めします。 – suguspnk

関連する問題