2017-12-30 58 views
1

私のテーブルのステータスカラムを更新したいが、メッセージの日付カラムも更新されている。ステータス欄のみを日付フィールドなしで更新するにはどうすればよいですか?他のデータを変更する場合、日付を変更しないでください。

データ型:

Status => Varchar 
messgae_date => Timestamp 

問合せ:

"UPDATE mytable SET status='1' WHERE status='0'" 

感謝の前に...

+1

本当にトリガーは発生していませんか?あなたが投稿したものはそれをしません。 –

+0

私はトリガーを使用しません – Aditya

+0

@Aditya - 'mytable'は' update'トリガーを持っていますか? –

答えて

0

あなたの質問を編集して、テーブルを作成するための全体のDDL文を投稿してください。私はそれが明らかになると信じています。

あなたの投稿によると、message_dateはタイムスタンプです。これはMySqlとMariaDbの特別なデータ型で、挿入時に自動的に更新されたり、行内の他のデータが変更されたりするたびに更新されます。

行の他の列の値を現在の値から を変化させた場合、自動更新された列は、自動的に現在 タイムスタンプに更新されます。 他のすべての列が現在の値に設定されている場合、自動更新列は変更されません。他の列が変更されたときに 自動更新列が更新されないようにするには、 を明示的に現在の値に設定します。自動更新された 列を更新するには、他の列が変更されない場合でも、明示的に値を に設定します(たとえば、CURRENT_TIMESTAMPに設定します)。

また、DDLステートメントを掲示してください。 message_date列はおそらくこのようになります。

`message_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
関連する問題