新しい行のみにデフォルトの NOW() を持つタイムスタンプ列を追加する 質問する

新しい行のみにデフォルトの NOW() を持つタイムスタンプ列を追加する 質問する

数千行のテーブルがあります。テーブルは最初に created_at 列を使用して構築されていなかったため、作成タイムスタンプを取得する方法がありません。ただし、将来の行のタイムスタンプを取得することは非常に重要です。

デフォルト値 NOW() を持つタイムスタンプ列を追加して、前の行に値が入力されず、将来の行にのみ値が入力されるようにする方法はありますか?

クエリを実行するとALTER、すべての行にタイムスタンプが設定されます。

ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP DEFAULT NOW()

ベストアンサー1

デフォルトで の列を追加しnull、次に列のデフォルトを に変更する必要がありますnow()

ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP;
ALTER TABLE mytable ALTER COLUMN created_at SET DEFAULT now();

おすすめ記事