1. ホーム
  2. database

[解決済み] PostgreSQLでタイムスタンプを自動更新する方法

2022-04-15 16:54:49

質問

MySQLでCURRENT_TIMESTAMPを使用してできるように、新しい行が挿入されたときにタイムスタンプを自動的に更新できるコードが欲しいのです。

PostgreSQLでこれを実現するにはどうしたらよいでしょうか?

CREATE TABLE users (
    id serial not null,
    firstname varchar(100),
    middlename varchar(100),
    lastname varchar(100),
    email varchar(200),
    timestamp timestamp
)

解決方法は?

挿入時にカラムにデータを入れるには DEFAULT の値を指定します。

CREATE TABLE users (
  id serial not null,
  firstname varchar(100),
  middlename varchar(100),
  lastname varchar(100),
  email varchar(200),
  timestamp timestamp default current_timestamp
)

そのカラムの値を明示的に上書きすることができます。 INSERT ステートメントを使用します。もしそれを防ぎたいなら トリガー .

また、行が更新されるたびにそのカラムを更新する必要がある場合にも、トリガが必要です(たとえば E.J. Brennanが言及した )

予約語をカラム名に使用することは、通常、良いアイデアではないことに注意してください。とは異なる名前を見つける必要があります。 timestamp