当前位置: 首页 > 知识库问答 >
问题:

Java execute()vs executeUpdate()刷新Postgresql中的物化视图

马欣德
2023-03-14

我试图从Java程序中刷新Postgresql中的物化视图:

conn = AbstractClientDao.getJdbcConnection();
pst = conn.prepareStatement("REFRESH MATERIALIZED VIEW mv_my_materialized_view;");
pst.execute();
conn.close();

根据文档,execute()方法可以用于任何类型的SQL语句:

执行此PreparedStatement对象中的SQL语句,该语句可能是任何类型的SQL语句。

注意:我不需要在程序的这一部分了解结果,因此返回值并不重要。

conn = AbstractClientDao.getJdbcConnection();
pst = conn.prepareStatement("REFRESH MATERIALIZED VIEW mv_my_materialized_view;");
pst.executeUpdate();
conn.close();

执行此PreparedStatement对象中的SQL语句,该语句必须是SQL数据操作语言(DML)语句,如INSERT、UPDATE或DELETE;或者什么也不返回的SQL语句(如DDL语句)。

代码正在工作并正确更新视图。

是我遗漏了什么,还是文档对End execute()和executeUpdate()之间的差异不够清楚?

注意:Java8,Postgresql 9.6,Driver org.Postgresql,version 9.3-1101-jdbc41

共有1个答案

终翔
2023-03-14

答:本规范的2个版本没有区别。我的问题是由于我的数据库中的种族条件。

 类似资料:
  • 我正在探索物化视图来创建非规范化视图,以避免为了提高读取性能而连接多个表。API将从物化视图中读取数据,以向客户端提供数据。 我正在使用亚马逊aurora postgres(版本11)。 我在物化视图(MV)上使用一个唯一的索引,这样我就可以使用“并发刷新”选项。 不过我注意到的是,当只有一小部分行在其中一个源表中更新,我尝试刷新视图时,它非常慢。事实上比第一次填充视图慢。例如:要填充MV第一次需

  • 问题内容: 出于优化目的,我使用实例化视图来定期刷新它,我设置了一个cron作业,在我的情况下,每三个小时运行一次周期t。我的问题是: 刷新实例化视图的最佳方法是什么? 如果使用cron作业刷新实例化视图会出现什么问题? 我遇到了一个Postgres插件,可以安排工作链接 问题答案: 最好的方法是定期执行执行任务的脚本: 脚本是: 并在crontab中添加一个条目,例如:

  • 我的核心问题是我有一个jsonb数据库列,其中的数据如下所示: (它是前端的一个羽毛字段的输出,我不想改变这个结构)。目前,我的API注意到该字段有一个条目,并通过提取hashtag条目(在本例中是“土豆”)和更新存储标记的text[]列来手动刷新数据库中的tags列。然后,我可以通过执行查询匹配项,或者通过获取所有标记的列表。 其他建议,如高效索引此列的方法(它是一个jsonb元素,具有单个顶级

  • 问题内容: 我想刷新一个列表视图。当我从另一个类获取值时,我希望它将其更新为列表视图。我正在创建用于刷新列表的线程,但出现异常: 如何进行? 问题答案: 无需尝试刷新视图以更新列表,只需采用Adapter对象并调用notifyDataSetChanged()API。

  • 视图(view)是 SQL 的一个概念,指的是基于 SQL 语句结果集的可视化表。和表(table)一样,视图也拥有行、列和字段,视图的字段可以来自于一个或多个数据库中的表,因此又称为虚表,支持 SQL 函数、WHERE 以及 JOIN 语句。 视图的定义并不会影响数据库原本的结构设计,但是视图字段是表字段的映射,效果类似于编程语言中的引用类型,对视图的更新(如果允许更新的话)会反过来修改表中的数

  • 使用WAMP在Windows 7上工作。 更改视图代码不会反映在浏览器中。 我试过: > php工匠缓存:清除 php artisan视图:清除 作曲家杜普莫托洛德 删除了存储/框架/视图下的所有内容 重新启动计算机 在我的php中。ini操作缓存已禁用: opcache.enable=0 没有任何帮助,这是非常令人沮丧的。 我错过了什么?