sql更新
This commit is contained in:
@@ -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();
|
||||
|
||||
-- =============================
|
||||
-- 创建视图
|
||||
-- =============================
|
||||
|
||||
Reference in New Issue
Block a user