20 lines
794 B
PL/PgSQL
20 lines
794 B
PL/PgSQL
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:相同输入返回相同输出,支持索引 |