我希望代码能够自动更新时间戳时,一个新的行插入,因为我可以在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所提到的)。
注意,对列名使用保留字通常不是一个好主意。您应该找到一个与时间戳不同的名称