postgresql使用dblink跨库增删改查

文章目录

  • 一、使用步骤
    • 1、创建dblink扩展,连接与被连接的两个数据库都要执行下面sql
    • 2、跨库查询或增删改
    • 3、如果不想每一次都写完整的dblink连接信息,可以先起别名
    • 4、补充:mybatis直接执行上面的sql写法

一、使用步骤

1、创建dblink扩展,连接与被连接的两个数据库都要执行下面sql

create extension if not exists dblink;

2、跨库查询或增删改

#查询
SELECT
	* 
FROM
	dblink ( 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26', 'select user_id,account from piedss_biz.sys_user' ) AS T ( ID TEXT, NAME TEXT);
	
#新增
SELECT dblink_exec ( 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26', 'INSERT INTO piedss_biz.sys_user(user_id,account,password,sex,super_admin_flag,status_flag,del_flag,create_user,real_name) VALUES(''1588006895019589631'',''ericfrq'',''1qazWSX'',''F'',''Y'',''1'',''N'',''dms_datahub'',''管理员'') ' );

#将库A的数据查询出来后直接插入存库B
INSERT INTO dms_usercenter_userinfo ( ID, true_name, username, PASSWORD, phone ) SELECT
* 
FROM
	dblink ( 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26', 'SELECT sys_user.user_id,sys_user.real_name,sys_user.account,sys_user.password,sys_user.tel FROM piedss_biz.sys_user' ) AS T ( ID TEXT, true_name TEXT, username TEXT, PASSWORD TEXT, phone TEXT );

#修改
SELECT dblink_exec ( 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26', 'UPDATE piedss_biz.sys_user SET account=''ericfrq'',password=''1qazWSX'',sex=''F'',super_admin_flag=''Y'',status_flag=''1'',del_flag=''N'',create_user=''dms_datahub'',real_name=''管理员''WHERE  user_id=''158800689501958963111''' );

#删除
SELECT dblink_exec ( 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26', 'DELETE FROM piedss_biz.sys_user WHERE user_id=''4028db8283d486350183d533f7570000'' AND create_user=''dms_datahub''' );

3、如果不想每一次都写完整的dblink连接信息,可以先起别名

#起别名
select dblink_connect('bieming', 'host=localhost port=5432 dbname=piedssdb_sort user=postgres password=qQq314159@26');
#进行操作
SELECT dblink_exec ( 'bieming', 'INSERT INTO piedss_biz.sys_user(user_id,account,password,sex,super_admin_flag,status_flag,del_flag,create_user,real_name) VALUES(''1588006895019589631'',''ericfrq'',''1qazWSX'',''F'',''Y'',''1'',''N'',''dms_datahub'',''管理员'') ' );
#关闭连接
SELECT dblink_disconnect('bieming');

4、补充:mybatis直接执行上面的sql写法

参考另外一篇:pgsql个人笔记,mybatis+postgresql写原生sql,不用xml

你可能感兴趣的:(springboot项目相关,postgresql,mybatis,数据库)