[解決済み] MySQL 4.0でのCreatedとLast Updatedのタイムスタンプ列を持つこと
2022-07-05 01:26:44
質問
次のようなテーブルスキーマがあります。
CREATE TABLE `db1`.`sms_queue` (
`Id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`Message` VARCHAR(160) NOT NULL DEFAULT 'Unknown Message Error',
`CurrentState` VARCHAR(10) NOT NULL DEFAULT 'None',
`Phone` VARCHAR(14) DEFAULT NULL,
`Created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`LastUpdated` TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
`TriesLeft` tinyint NOT NULL DEFAULT 3,
PRIMARY KEY (`Id`)
)
ENGINE = InnoDB;
以下のようなエラーで失敗します。
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.
質問ですが、これらのフィールドを両方とも持つことはできますか? それとも、各トランザクションの間に手動でLastUpdatedフィールドを設定しなければならないのでしょうか?
どのように解決するのですか?
テーブルの1つのTIMESTAMPカラムは、カラムを初期化するためのデフォルト値として、自動更新の値として、またはその両方として、現在のタイムスタンプを持つことができます。 現在のタイムスタンプをあるカラムの初期値とし、別のカラムの自動更新値とすることはできません。
以前は、1つのテーブルにつき最大1つのTIMESTAMPカラムが、現在の日付と時刻に自動的に初期化または更新されることができました。 この制限は解除されました。 どのTIMESTAMPカラム定義も、DEFAULT CURRENT_TIMESTAMPとON UPDATE CURRENT_TIMESTAMP句の任意の組み合わせを持つことができます。さらに、これらの句は、DATETIMEカラム定義でも使用できるようになりました。詳細については、TIMESTAMPとDATETIMEの自動初期化および自動更新を参照してください。
関連
-
MySQL Innodb インデックスメカニズム詳細解説
-
MySqlの整数インデックスと文字列インデックスの失敗または暗黙の変換問題
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
MySQLの悲観的ロックと楽観的ロックの実装スキーム
-
[解決済み] datetimeの挿入時に文字列から日付や時刻を変換すると、変換に失敗する
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
[解決済み] DEFAULT句でCURRENT_TIMESTAMPを持つTIMESTAMPカラムは1つしかないのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySqlの整数インデックスと文字列インデックスの失敗または暗黙の変換問題
-
MySQL サービスとデータベース管理
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] DEFAULT句でCURRENT_TIMESTAMPを持つTIMESTAMPカラムは1つしかないのはなぜですか?