sql更新

This commit is contained in:
2025-12-02 14:59:34 +08:00
parent 94718edd6b
commit 2a9e624ba9
18 changed files with 1542 additions and 937 deletions

View File

@@ -55,59 +55,6 @@ CREATE EXTENSION IF NOT EXISTS "btree_gin"; -- GIN索引支持
-- =============================
\i createTableAgent.sql
-- =============================
-- 创建通用触发器函数
-- =============================
-- 自动更新update_time的触发器函数
CREATE OR REPLACE FUNCTION public.update_modified_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.update_time = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- 为所有表添加update_time触发器的辅助函数
CREATE OR REPLACE FUNCTION public.create_update_triggers()
RETURNS void AS $$
DECLARE
r RECORD;
BEGIN
FOR r IN
SELECT schemaname, tablename
FROM pg_tables
WHERE schemaname IN ('sys', 'file', 'message', 'log', 'config', 'knowledge', 'bidding', 'customer_service', 'agent')
AND tablename LIKE 'tb_%'
LOOP
-- 检查表是否有update_time列
IF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = r.schemaname
AND table_name = r.tablename
AND column_name = 'update_time'
) THEN
-- 删除已存在的触发器
EXECUTE format('DROP TRIGGER IF EXISTS trg_%s_update_time ON %I.%I',
r.tablename, r.schemaname, r.tablename);
-- 创建新触发器
EXECUTE format('CREATE TRIGGER trg_%s_update_time
BEFORE UPDATE ON %I.%I
FOR EACH ROW
EXECUTE FUNCTION public.update_modified_column()',
r.tablename, r.schemaname, r.tablename);
RAISE NOTICE 'Created trigger for %.%', r.schemaname, r.tablename;
END IF;
END LOOP;
END;
$$ LANGUAGE plpgsql;
-- 执行触发器创建
SELECT public.create_update_triggers();
-- =============================
-- 创建视图
-- =============================