使用 JDBC 创建 PostgreSQL 触发器

2024-01-19

我正在尝试创建一个 PostgreSQL 触发器Play2.0 http://www.playframework.org/数据库演化脚本。 sql代码相对简单并且在pgAdminIII中运行良好:

CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$
  BEGIN
    NEW.modified = now();
    RETURN NEW;
  END;
$$ LANGUAGE 'plpgsql';

但是,我在运行进化时遇到错误:ERROR: unterminated dollar-quoted string at or near "$$ BEGIN NEW.modified = now()"。 SQL 代码似乎被截断为 函数中遇到的第一个分号。我正在使用 PostgreSQL 的“9.1-901.jdbc4”JDBC 驱动程序。

Update:

代码在Evolutions.scala https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/db/evolutions/Evolutions.scala(第 219 行+)对;。框架本身似乎有问题:

// Execute script
s.sql.split(";").map(_.trim).foreach {
  case "" =>
  case statement => execute(statement)
}

有什么解决办法吗?


您可以尝试以下操作。

    String sql = "CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$ " +
            "BEGIN " +
                "NEW.modified = now(); " +
                "RETURN NEW; " +
                "END; " +
            "$$ LANGUAGE 'plpgsql';";
    DataSource ds = getDataSource();
    try {
        Connection conn = ds.getConnection();
        conn.setAutoCommit(true);
        Statement st = conn.createStatement();
        st.executeUpdate(sql);
        st.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

希望这对你有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JDBC 创建 PostgreSQL 触发器 的相关文章

随机推荐

  • 方法 Illuminate\Database\Eloquent\Collection::links 不存在

    我创建了用户和消息之间的模型关系 我想为经过身份验证的用户实现消息列表 但出现以下错误 方法 Illuminate Database Eloquent Collection links 不存在 控制器 public function ind
  • 当我使用快捷键时获取我的ContextMenuStrip的SourceControl

    我有单身ContextMenuStrip连接到两个控件 DataGridView In the ToolStripMenuItem单击事件 我设法得到原始调用者 DataGridView 用这个代码 var menu ToolStripDr
  • 查找 Excel 电子表格的模板路径

    我有一个带有 VBA 代码的 Excel 电子表格模板 xltm 文件 我想在模板打开的电子表格中找到模板的路径 问题示例 用户通过双击 C My Stuff 中的模板文件打开一个新电子表格 他们填写单元格 然后在询问他们的名称后单击一个按
  • MySQL所有父子关系

    我有一个名为table 它有一个名为id与类型INT 11 代表行的标识符 它还有其他字段 但我认为它们与这个问题无关 我有另一个表名为table children 它有一个名为parent与类型INT 11 指的是table id作为外键
  • 使用 1 位 ALU 制作 16 位 ALU

    你好 我正在尝试从几个 1 位 ALU 创建一个 16 位 ALU 我创建了一个名为 basic alu1 的包 其中包含 1 位 ALU 的组件 其代码是 library ieee use ieee std logic 1164 all
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • 使用 Boost.python 将 Python 列表传递给 C++ 向量

    如何传递对象类型的 Python 列表ClassName到一个接受a的C 函数vector
  • 如何防止我的应用程序在 iPhone 上后台运行

    有什么方法可以让应用程序在按下主页按钮时退出而不是进入后台吗 出于安全原因 如果应用程序不在后台运行 而是在按下主页时实际关闭 那就更好了 这是not为了用户的安全 而是为了应用程序上的公司数据 所以这不是用户的选择 除了强行退出之外 我找
  • Nodejs/V8 是否将编译后的机器代码存储在磁盘上的任何位置?

    Edit Node 从 Node 8 3 开始使用字节码 在此之前 源代码直接编译为机器代码 我进行了大量的 Python 编码 并且 pyc 文件中总是存在字节码 我想知道节点是否将其机器代码存储在类似的文件中 例如 将机器代码表示保留
  • 网络摄像机RTSP地址

    我有 IP 摄像头 但我不知道它是 RTSP 流的完整正确 URL 地址 仅 RTSP 设置中有端口 但据我了解 192 168 1 132 554 还不够 VLC 说找不到 rtsp 流 如何找出正确的 url 地址 如何找出正确的 ur
  • 复合主键是否为N-M关系?

    假设我们有 3 个表 实际上我现在有 2 个表 但这个例子可能会更好地说明这个想法 Person ID int 主键 名称 nvarchar xx Group ID int 主键 名称 nvarchar xx Role ID int 主键
  • Android Java:关闭屏幕

    我正在制作一个使用接近传感器打开和关闭屏幕的应用程序 接近代码已完成 但我在使用屏幕控件时遇到了麻烦 我读过我应该使用 PowerManager manager PowerManager getSystemService Context P
  • 为什么 MFMailComposeViewController 返回 MFMailComposeResultFailed?

    我的应用程序遇到一个奇怪的问题 我需要您的帮助 我正在使用 MFMailComposeViewController 发送带有附件数据的电子邮件 附件是 PDF CSV 或 XLS 文件 还可以将 ZIP 文件添加到邮件中 在大多数情况下一切
  • 关闭窗口前Socket.IO断开连接问题

    我试图阻止客户端与服务器断开连接 因此 在用户关闭打开应用程序的窗口之前 我会执行以下操作 window bind beforeunload function return Close the app 但问题是 无论用户选择离开还是留在应用
  • Groovy Node.depthFirst() 返回节点和字符串列表?

    我希望有人能指出我在这里遗漏的一些明显的东西 我觉得我已经这样做了一百次了 出于某种原因 今晚 由此产生的行为让我陷入了困境 我正在从公共 API 读取一些 XML 我想从某个节点中提取所有文本 body 内的所有内容 其中还包括各种子节点
  • Java 并发收集少写多读

    我想使用基于比较器的键值映射 这将进行读取和罕见的写入操作 通过调度程序每 3 个月一次 集合的初始加载将在应用程序启动时完成 另请注意 写入将 将单个条目添加到地图 不会修改地图的任何现有条目 ConcurrentSkipListMap
  • xcode 5 语法高亮不适用于单元测试文件

    我已经为我的项目设置了单元测试 最初 我在编译测试文件期间遇到了错误 最后我解决了它 我的测试现在正在工作 现在的问题是语法突出显示不适用于测试文件 仅适用于此 我尝试按照这个answer https stackoverflow com a
  • RegExp 中的混乱 不情愿的量词?爪哇

    为什么我得到输出ab对于以下带有 Relucutant 量词的正则表达式代码 Pattern p Pattern compile abc Matcher m p matcher abcfoo while m find System out
  • 测试内部使用 MySQL 特定查询的代码的正确方法是什么

    我正在收集数据并使用 Java 将这些数据存储在 MySQL 数据库中 此外 我使用 Maven 来构建项目 使用 TestNG 作为测试框架 使用 Spring Jdbc 来访问数据库 我实现了一个 DAO 层 它封装了对数据库的访问 除
  • 使用 JDBC 创建 PostgreSQL 触发器

    我正在尝试创建一个 PostgreSQL 触发器Play2 0 http www playframework org 数据库演化脚本 sql代码相对简单并且在pgAdminIII中运行良好 CREATE OR REPLACE FUNCTIO