2016-07-19 11 views
2

ユーザーの登録日を格納するTIMESTAMP列がテーブルにあります.Javaアプリケーションからログアウトすると、PreparedStatementのREPLACEクエリがTIMESTAMP以外のすべてのものを更新します。しかし、TIMESTAMPのデフォルト値はCURRENT_TIMESTAMPで、現在の時間に設定します。デフォルト値をnullに設定するとNULLとして保存され、デフォルト値を設定しないとSQL例外がスローされます。プリペアドステートメントがTIMESTAMP列を更新しないようにするにはどうすればよいですか?

準備文がその列を完全に無視するようにするにはどうすればよいですか?

+3

REPLACEは更新されません。古い行が削除され、新しい行が挿入されてデフォルト値が取得されます。これにはUPDATEを使用する必要があります。 – EJP

+0

ありがとうございました! :) – Frwrdnvrbckwrds

答えて

2

タイムスタンプで現在の値を保持したい場合は、(REPLACEの代わりに)UPDATEを使用するか、REPLACEトリガーにリード・モディファイ・ライトを行い、タイムスタンプの現在の値を取得してからそれを新しい記録に戻します。

+0

ありがとうございました! :) – Frwrdnvrbckwrds

関連する問題