Postgresql使用触发器实现同步插入两张表

触发器,Postgresql · 浏览次数 : 286

小编点评

**升级 API 的步骤:** 1. **使用微服务架构将数据库拆分:** - 创建独立的微服务,其中包含数据库连接和处理逻辑。 - 将原有的数据库原原本本地固定在旧系统中。 2. **在微服务中运行新系统:** - 在微服务中运行与新系统相关的 API。 - 将数据库连接和数据传输到新系统中。 3. **使用数据库的卷影复制功能进行数据共享:** - 如果两个数据表的结构不完全一样,可以使用数据库的卷影复制功能来实现数据共享。 4. **使用触发器实现数据同步:** - 创建触发器,在插入数据库中的新记录时触发触发器。 - 在旧系统中执行触发器,将数据同步到新系统中。 5. **测试和部署:** - 对新 API 进行测试和部署。 - 验证数据同步功能是否正常。

正文

在有一个陈旧的系统的情况下,如果升级API可以优先使用微服务的形式,将数据库进行独立拆分,将原来的数据库原原本本地固定在旧系统中,然后在独立的微服务中运行与部署新系统。

如果原有的数据需要在更换结构的前提下在不同的版本的系统下进行共享,那可以使用数据库的卷影复制等功能。如果两个数据表的结构不完全一样,那么使用触发器的功能来实现会更加简单一些。

// 创建触发器函数
CREATE OR REPLACE FUNCTION "public"."insert_test_funcs"()
  RETURNS "pg_catalog"."trigger" AS $BODY$  
    BEGIN  
        insert into test2 (a,b,c) 
    VALUES (new.a,new.b,new.c);
                RETURN NEW;
    END;  
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100

// 在主表上创建触发器

CREATE TRIGGER "createbh_test_insert_trigger" AFTER INSERT ON "public"."test"
FOR EACH ROW
EXECUTE PROCEDURE "public"."insert_test_funcs"();

————————————————

版权声明:转载为CSDN博主「小石石石石石石」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42101813/article/details/106947029

与Postgresql使用触发器实现同步插入两张表相似的内容:

Postgresql使用触发器实现同步插入两张表

在有一个陈旧的系统的情况下,如果升级API可以优先使用微服务的形式,将数据库进行独立拆分,将原来的数据库原原本本地固定在旧系统中,然后在独立的微服务中运行与部署新系统。 如果原有的数据需要在更换结构的前提下在不同的版本的系统下进行共享,那可以使用数据库的卷影复制等功能。如果两个数据表的结构不完全一样

[转帖]postgresql 的 .pgpass密码文件的使用

.pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass。 在使用某些组件时还真的必须使用。具体的格式为: hostname:port:database:username:password 常见的使用如下: # su - postgres $ vi ~/.pg

[转帖]postgresql 的 .pgpass密码文件的使用

.pgpass 是 连接 postgresql 时使用的密码文件,通常位置为 ~/.pgpass。在使用某些组件时还真的必须使用。具体的格式为: hostname:port:database:username:password 常见的使用如下: # su - postgres $ vi ~/.pgp

[转帖]PostgreSQL 统计所有数据表各自的总行数

一般来说,可以使用 count(*) 来获取具体某张表的总行数: SELECT count(0) FROM t_user; 如果想获得所有表的行数信息,可以使用以下 SQL 语句: SELECT relname, reltuplesFROM pg_class CLS LEFT JOIN pg_nam

[转帖]postgresql 编译选项 --with-uuid=e2fs、--with-uuid=ossp 的理解

postgresql 的 rpm 包使用的是 ‘–with-uuid=e2fs’ postgresql 源码 configure 的帮助选项有 uuid 的几个选项,有啥区别? # ./configure --help --with-uuid=LIB build contrib/uuid-ossp

[转帖]如何在CentOS 7上使用Barman备份,恢复和迁移PostgreSQL数据库

http://www.manongjc.com/detail/52-bdglcaimnhmjvkm.html 本文章向大家介绍如何在CentOS 7上使用Barman备份,恢复和迁移PostgreSQL数据库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的

[转帖]PostgreSQL(三) 内存参数优化和原理(work_mem)内存表 pgfincore插件使用方法

1.常用内存参数 1.1 shared_buffers shared_buffers是PostgreSQL用于共享缓冲区的内存,是由8kb大小的块所形成的数组。PostgreSQL在进行更新、查询等操作时,首先从磁盘把数据读取到内存,之后进行更新,最后将数据写回磁盘。shared_buffers可以

kong网关部署

软件版本: Postgresql:9.6 (不使用最新版,是因为 konga 不支持) Kong:3.4.2 konga:0.14.7 (UI管理界面) ### Postgresql部署 ## docker-compose.yml version: '3' services: postgres: i

[转帖]initdb命令 – 初始化PostgreSQL数据库

https://www.xtuos.com/2202.html 使用initdb命令可以在安装完PostgreSQL服务器所需软件包之后,初始化一个PostgreSQL数据库簇。 语法格式: initdb [参数] [目录] 常用参数: -U 指定数据库超级用户名 -W 对于新的超级用户提示输入口令

[转帖]pg_hba.conf 中 md5 和 scram-sha-256 的区别

db: postgresql 11 auth-method 指定当一个连接匹配这个记录时,要使用的认证方法。下面对可能的选择做了概述,详见第 20.3 节。 trust 无条件地允许连接。这种方法允许任何可以与PostgreSQL数据库服务器连接的用户以他们期望的任意PostgreSQL数据库用户身