30 lines
849 B
PL/PgSQL
30 lines
849 B
PL/PgSQL
-- 确保启用 uuid-ossp 扩展(用于生成 UUID)
|
||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||
|
||
-- 创建 users 表
|
||
CREATE TABLE users
|
||
(
|
||
id CHAR(36) PRIMARY KEY DEFAULT uuid_generate_v4()::varchar,
|
||
username VARCHAR(255) NOT NULL UNIQUE,
|
||
password VARCHAR(255) NOT NULL,
|
||
nickname VARCHAR(255),
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||
);
|
||
|
||
-- 创建触发器函数:自动更新 updated_at
|
||
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||
RETURNS TRIGGER AS
|
||
$$
|
||
BEGIN
|
||
NEW.updated_at = NOW();
|
||
RETURN NEW;
|
||
END;
|
||
$$ LANGUAGE plpgsql;
|
||
|
||
-- 创建触发器:在 users 表 UPDATE 时自动调用
|
||
CREATE TRIGGER trigger_update_users_updated_at
|
||
BEFORE UPDATE
|
||
ON users
|
||
FOR EACH ROW
|
||
EXECUTE FUNCTION update_updated_at_column(); |