PostgreSQL中用递归CTE获取一张表的所有祖先表
今天介绍两个知识点:
- PostgreSQL的表继承
- PostgreSQL中的可递归CTE
传统的Java Web开发一般都会提供热重载的方式,方便开发人员在代码发生变化的时候,无需手动重启应用,就可以刷新到效果。用惯了的人,在用Vert.x
开发的时候多少会有点不习惯,不过Vert.x
程序启动速度还是很可观的,所以也勉强能忍。
后来通读文档的时候,发现有个关于redeploy
的介绍,似乎能用,又似乎不好用的,直到看到官方的Vert.x 3.2 Gradle redeploy project总算豁然开朗了。
核心代码无非下面几行
在Vert.x
的官方example中,mainClassName
一般是指定的io.vertx.core.Launcher
,但是在实际应用中,如果我们也不加思索的用这个Launcher
就会损失好多定制性,比如:
在PostgreSQL
中可以很轻松的创建物化视图,但是却没有自动刷新物化视图的机制。通常来说,不外乎两种方式,一种是通过触发器,另一种就是定时任务调度。今天我们就来说说第二种方式。
主要借助一个名为pg_cron的扩展。
安装方法在官方介绍里面已经说的很清楚了,不再赘述,这里提醒一点,安装完后,是需要修改postgresql.conf
配置文件,并重启PostgreSQL
服务的。具体修改如下:
必要的时候要修改PostgreSQL
中配置的外部服务器。有个ALTER SERVER
命令是专门应对这种场景的。比如我的外部数据源服务器地址换了,只需要改下之前配置的host
地址即可,SQL
如下
想象有这么一张表,存放若干学生不同课程的考试成绩,需求是,找出每门课程中,成绩最好的学生。原始表大概如下:
+--------------------------------------+-----------------+----------------+-----------+ |
ln
命令,涉及到的软硬链接的核心概念已经被阐述的很多了。但是用的时候,到底用软链接,还是用硬链接,有时候还是会让人摸不着头绪。所以我尝试总结几点:
PostgreSQL中,如果想drop一个正在被人连接的数据库,是不可以的。提示如下:
postgres=# drop database ka; |
编写cordova
插件的时候,有时候要有进一步设置build.gradle
文件的需求,比如追加个依赖什么的。这中问题,可以通过设置cordova
的plugin.xml
来解决的。分为如下几个步骤: