0

テーブルにdate列があります。update行に対してクエリを実行するdateと、現在の日付に更新されるたびに。日付のデフォルト値を に設定しましCURRENT_TIMESTAMPたが、毎回これが発生するのはなぜですか?

アップデート

私の作成クエリ:

CREATE TABLE  `ACCOUNTS` (
  `id` bigint(7) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `status` varchar(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1234567 DEFAULT CHARSET=latin1
4

3 に答える 3

0

それはおそらくdateキーワードであることと関係があります。に変更してみてくださいsome_dateCURRENT_TIMESTAMP意図的でしたか?

于 2012-10-03T14:52:22.800 に答える
0

デフォルト値を CURRENT_TIMESTAMP に設定すると、SQL は新しいレコードの作成時にのみ現在のタイム スタンプを挿入し、自分で更新しない限り更新しません。更新してもタイムスタンプは更新されません

于 2012-10-03T14:52:39.980 に答える
0

MariaDB を使用している場合は、このドキュメント ページhttps://mariadb.com/kb/en/library/timestamp/に驚くべき情報が含まれている可能性があります。

「タイムスタンプフィールドは通常、行が追加または更新された時点を定義するために使用され、デフォルトでは、レコードが挿入または更新されたときに現在の日時が自動的に割り当てられます。自動プロパティは、レコードの最初の TIMESTAMP にのみ適用されます。 ; 後続の TIMESTAMP 列は変更されません。"

この素晴らしい機能に遭遇する次の開発者に、このビットが役立つことを願っています...

于 2019-11-05T23:45:27.907 に答える