PostgreSQL中怎么利用DBLink实现自治事务
本篇文章给大家分享的是有关PostgreSQL中怎么利用DBLink实现自治事务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
安装dblink插件,验证dblink可连接至本地PG
[local]:5432pg12@testdb=#createextensiondblink;ERROR:extension"dblink"alreadyexistsTime:1.128ms[local]:5432pg12@testdb=#selectt1.*fromdblink('host=/tmpport=5432dbname=testdbuser=pg12','select*fromt1')ast1(idint,c1int,c2int)limit1;id|c1|c2----+----+----4|4|4(1row)Time:1413.943ms(00:01.414)
创建数据表和存储过程
[local]:5432pg12@testdb=#droptableifexistslog;DROPTABLETime:38.531ms[local]:5432pg12@testdb=#CREATETABLElog(pg12@testdb(#msgtextnotnull,pg12@testdb(#sender_tstimestamptznotnull,pg12@testdb(#local_tstimestamptzdefaultnow()pg12@testdb(#);CREATETABLETime:8.686ms[local]:5432pg12@testdb=#CREATEORREPLACEFUNCTIONlog_dblink(msgtext)pg12@testdb-#RETURNSvoidpg12@testdb-#LANGUAGEsqlpg12@testdb-#AS$function$pg12@testdb$#selectdblink('host=/tmpport=5432user=pg12dbname=testdb',pg12@testdb$#format('insertintologselect%L,%L',msg,clock_timestamp()::text))pg12@testdb$#$function$;CREATEFUNCTIONTime:3.657ms
测试验证,启动事务,调用函数,然后rollback
[local]:5432pg12@testdb=#begin;BEGINTime:1.293ms[local]:5432pg12@testdb=#*selectlog_dblink('logmessage');log_dblink------------(1row)Time:16.394ms[local]:5432pg12@testdb=#*rollback;ROLLBACKTime:0.845ms
通过dblink执行的SQL主事务隔离,已commit
[local]:5432pg12@testdb=#select*fromlog;msg|sender_ts|local_ts-------------+-------------------------------+-------------------------------logmessage|2019-08-0514:23:30.459183+08|2019-08-0514:23:30.468047+08(1row)Time:0.695ms
以上就是PostgreSQL中怎么利用DBLink实现自治事务,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。