コマンドを与えるSHOW CREATE TABLE whatever
次に、テーブル定義を見てください。
多分こんなセリフがある
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
初期化。 タイムスタンプが明示的に設定されていない場合は、現在の時刻が使用DEFAULT CURRENT_TIMESTAMPされることを意味します。INSERT同様にON UPDATE CURRENT_TIMESTAMP、明示的なタイムスタンプなしで更新すると、現在のタイムスタンプ値が更新されることを意味します。
テーブルを作成するときに、このデフォルトの動作を制御できます。
または、最初にタイムスタンプ列が正しく作成されなかった場合は、変更できます。
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
これにより、テーブルに対する INSERT 操作と UPDATE 操作の両方で、タイムスタンプ列が自動的に更新されます。タイムスタンプを変更せずに更新したい場合whatevertable、つまり、
他の列が変更されたときに列が更新されないようにするには
次に、この種の更新を発行する必要があります。
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
これは、TIMESTAMPおよびDATETIME列で機能します。(MySQL バージョン 5.6.5 より前では、TIMESTAMPs でのみ機能しました) s を使用するTIMESTAMPと、タイム ゾーンが考慮されます。正しく構成されたサーバー マシンでは、これらの値は常に UTC で保存され、取得時に現地時間に変換されます。