CREATE OR REPLACE FUNCTION update_data_modified_column()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = CURRENT_TIMESTAMP;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql VOLATILE;

-- 创建自动格式化小数的函数（按需去除尾部多余0）
CREATE OR REPLACE FUNCTION format_numeric_to_original(n NUMERIC)
RETURNS TEXT AS $$
BEGIN
    -- 逻辑：如果是整数（小数部分全0），返回整数文本；否则返回去除尾部0的文本
    IF n = TRUNC(n) THEN
        RETURN TRUNC(n)::TEXT;  -- 整数场景：1.000000 → '1'
    ELSE
        RETURN TRIM(TRAILING '0' FROM TRIM(TRAILING '.' FROM n::TEXT));  -- 小数场景：1.230000 → '1.23'，1.002000 → '1.002'
    END IF;
END;
$$ LANGUAGE plpgsql IMMUTABLE;  -- IMMUTABLE：相同输入返回相同输出，支持索引