- IT精品课程
- 孤狼
- 珠海刘硕的博客
- 技术控
- 阿健-cauc
- 初始化
- Coffee_蓝山
- 九叔-企业信息化进程
- 老徐的私房菜
- 高文龙
- httpyuntianjxxll...
- 蚂蚁窝
- See you next year CA
- 韩立刚
- 空魔方
- Linux、虚拟化
- 虚拟的现实
- titanchinablog.com
- Helpdesk Log
- 马睿的技术博客
- kikupotter
- 吟�技术交流
- IvanTian
- 路途拾遗-小侠唐在飞
- 贾亮的博客
- 滴水穿石
- 许一君的原创技术博客
- 张宇(数据恢复)
- ZJS的微软桌面虚拟化
- xjzhujunjie
- 峰云,就她了。
- 烟雨楼台
- IT----你---我---..
- sir的积累
- 虚拟化时代到来!
- 微软产品代理商
- 小飞侠的博客
- 快乐分享
- 叶海啸_也许明天
- 王万利的博客
- 现任明教教主
- Virtualization Now!
- 小明明s窝
- 理想CTO
- 300second的运维小站
- 面朝大海,春暖花开
- 备忘录
- lafferli
- Tonyguo De博客【..
- 无忧豆
服务器版本:CENTOS 6.4
内核:2.6.32-358.6.2.el6.x86_64
服务:PPTP服务。
故障:搭建好PPTP服务后使用还算比较正常,但是系统会出现报错,如下:
使用VPN访问大部分网站都是正常的,但是我需要访问这个网站的时候就无法访问了:www.wellsfargo.com,这个站点出故障的几率和中500万的几率差不多,所以还是VPN的问题,那么问题就来了,找根本原因吧。
经内事百度,外事谷歌后得知:
原因是由于MTU的原因,具体问题请自行google.解决办法是通过打补丁,但是我们没搞明白,更没有去动手。默认的MTU为1396,如下图。
昨天我用MySQL来实现了ORACLE的递归语句CONNECT BY, 看起来稍复杂些。今天来看看POSTGRESQL如何实现ORACLE的CONNECT BY。
还是用昨天同样的表以及数据。POSTGRESQL自诩最像ORACLE的数据库,所以大部分语句也就都可以简单而且变相的实现了。
在这点上可以用他自己带的WITH递归功能,还可以用第三方扩展带来的类似connect by 函数。
先来看第一点,用递归的WITH来展现这棵树的路径。
t_girl=# with recursivetmp_country(id,path) as t_girl(# select a.id, '/' ||b. name as "path" from country_relation as a inner join country as b on (a.id=b.id) where a.parentid is null t_girl(# union all t_girl(# select a.id,q.path|| '/' ||b. name as "path" from country_relation as a inner join tmp_country as q on (q.id=a.parentid) t_girl(# inner join country as b on (a.id=b.id) t_girl-# select a.path from tmp_country as a; /Earth/NorthAmerica /Earth/SouthAmerica /Earth/Australia /Earth/NorthAmerica/Canada /Earth/NorthAmerica/CentralAmerica /Earth/NorthAmerica/IslandNations /Earth/NorthAmerica/UnitedStates /Earth/NorthAmerica/UnitedStates/Alabama /Earth/NorthAmerica/UnitedStates/Alaska /Earth/NorthAmerica/UnitedStates/Arizona /Earth/NorthAmerica/UnitedStates/Arkansas /Earth/NorthAmerica/UnitedStates/California |
还可以用tablefunc扩展带来的CONNECT BY函数把这棵树遍历出来。
由于昨天设计的两张表通过ID来关联,这个扩展自带的函数要把名字展现出来比较麻烦,索性这里我就用了一张临时表保存我想要的结果。
t_girl=# CREATE TEMPORARY TABLE tmp_country_relation as SELECT b.id,a. name ,b.parentid, '' ::text as parentname FROM country AS a,country_relation AS b WHERE a.id=b.id; Time :11.773ms |
这里更新了对应的ID为NAME。
t_girl=# update tmp_country_relation set parentname=a. name from country as a where parentid=a.id; |
我用TABLEFUNC扩展带来的CONNECT BY 实现这棵树的遍历。
t_girl=# select path from connectby( 'tmp_country_relationasa' , 'a.name' , 'a.parentname' , 'Earth' ,0, '/' ) as g(idtext,parentidtext, level int ,pathtext) order by level ; Earth/NorthAmerica Earth/SouthAmerica Earth/NorthAmerica/IslandNations Earth/NorthAmerica/Canada Earth/NorthAmerica/CentralAmerica Earth/NorthAmerica/UnitedStates Earth/NorthAmerica/UnitedStates/California Earth/NorthAmerica/UnitedStates/Arkansas Earth/NorthAmerica/UnitedStates/Alabama Earth/NorthAmerica/UnitedStates/Alaska Earth/NorthAmerica/UnitedStates/Arizona |
本文出自 "上帝,咱们不见不散!" 博客,请务必保留此出处http://yueliangdao0608.blog.51cto.com/397025/1572083
没有评论:
发表评论