-- 切换到目标数据库 \c postgres; CREATE OR REPLACE FUNCTION update_user_modified_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = CURRENT_TIMESTAMP; RETURN NEW; END; $$ LANGUAGE plpgsql VOLATILE; DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'user') THEN CREATE TABLE "user" ( -- user是关键字,用双引号包裹 id UUID DEFAULT gen_random_uuid_v7() PRIMARY KEY NOT NULL, deleted BOOLEAN NOT NULL DEFAULT FALSE, created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE TRIGGER update_user_updated_at BEFORE UPDATE ON "user" FOR EACH ROW EXECUTE FUNCTION update_user_modified_column(); RAISE NOTICE 'Created user table and trigger'; ELSE RAISE NOTICE 'user table already exists'; END IF; END $$;