使用UnityJDBC多源插件在SQuirrelSQL中操作PostgreSQL增改报错求助
解决UnityJDBC MultiSource Plugin操作PostgreSQL时的列不存在报错问题
检查标识符大小写匹配
PostgreSQL和Access的标识符大小写规则存在差异:如果你的PostgreSQL表/列是通过双引号包裹创建的(区分大小写),编写SQL时必须用双引号对应包裹表名和列名;如果创建时未加双引号,PostgreSQL会自动将标识符转为小写,此时语句里的大写名称就会匹配不到目标字段/表。
试试把语句改成带双引号的格式:INSERT INTO "temp_Table" ("temp_Field") VALUES ('测试内容');或者确认表和列的实际名称为小写,将语句里的
temp_Table、temp_Field改成小写后再执行。验证SQL语句的实际执行内容
既然跨源查询和Access的增改操作都正常,大概率是插件对PostgreSQL的DML语句做了错误解析。你可以:- 用原生PostgreSQL JDBC驱动单独连接数据库,执行同样的INSERT/UPDATE语句,确认语句本身是有效的。
- 查看插件是否有日志功能,开启后检查它实际发送给PostgreSQL的SQL语句是什么,对比你输入的语句是否被篡改。
排查试用版的潜在限制
虽然试用版标注的是99条记录限制,但不排除PostgreSQL的DML功能在试用版里存在隐藏bug或未公开限制。可以直接联系UnityJDBC的技术支持,说明你的问题,确认是否是试用版导致的异常。核对PostgreSQL数据源配置
再检查下插件里PostgreSQL的配置项:- JDBC URL是否指定了正确的
currentSchema(如果你的表不在默认public模式下) - 登录用户是否拥有该表的INSERT/UPDATE权限
- 是否选择了正确的数据库实例
- JDBC URL是否指定了正确的
内容的提问来源于stack exchange,提问作者Daniel Perez
相关产品推荐
相关产品推荐

