业务系统中,经常会在设计表的时候,考虑这两个字段:新增时间、修改时间。前者用数据库的基础功能即可实现,后者就要采取一些手段了。
在PostgreSQL中的最佳实践是采用触发器,捕捉UPDATE实践,虽然听起来很可怕,但其实并不难。
传统的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命令,涉及到的软硬链接的核心概念已经被阐述的很多了。但是用的时候,到底用软链接,还是用硬链接,有时候还是会让人摸不着头绪。所以我尝试总结几点: