postgresql设置自动更新时间方法
在PostgreSQL中,如果你想要设置一个表中的时间戳字段在每次行更新时自动更新,你可以使用CREATE TABLE
时的DEFAULT
子句结合NOW()
函数,或者使用ALTER TABLE
来添加一个触发器。
以下是使用ALTER TABLE
添加触发器的示例代码:
CREATE TABLE example_table (
id SERIAL PRIMARY KEY,
data TEXT,
updated_at TIMESTAMP WITH TIME ZONE
);
-- 创建一个函数,用于设置时间戳
CREATE OR REPLACE FUNCTION update_timestamp() RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END; $$ LANGUAGE plpgsql;
-- 创建触发器,绑定到表上,每次更新行时调用函数
DROP TRIGGER IF EXISTS update_example_table_timestamp ON example_table;
CREATE TRIGGER update_example_table_timestamp
BEFORE UPDATE ON example_table
FOR EACH ROW
EXECUTE FUNCTION update_timestamp();
在这个例子中,每次example_table
中的行被更新时,updated_at
字段都会被设置为当前的时间戳。
请注意,这段代码需要在PostgreSQL数据库中执行,并且数据库用户需要有创建触发器和函数的权限。
评论已关闭