cannot insert multiple commands into a prepared statement问题原因及解决办法
问题是这样,我在对数据库进行写操作(添加、删除、修改)时,我想同时删除两个表中的两条关联数据,像这样
let sql = `
DELETE FROM bridge_parts
WHERE id = $1;
DELETE FROM bridge_quantity
WHERE bridge_part_id = $2`
然后使用 client.query(sql,[item1,item2])
来执行删除操作,这个时候问题出现了,pgsql报错,错误如下
cannot insert multiple commands into a prepared statement
查了一下原因,是pg语句预处理的问题,可以使用pg_prepare,但仅用于单独的语句,而不是整个事务,预处理语句是递交给PostgreSQL的语句,然后将其解析并存储为解析树以供将来使用。在第一次执行时,将使用提供的输入计划解析树,并执行该计划,并将计划缓存以供将来使用。通常使用预准备语句没有多大意义,除非你想重用查询计划(即执行大量相同的更新语句,大致相同的行数),所有这些都在同一个事务中。
意思就是说pg_prepare
只能对单独的sql进行预处理,不能同时预处理两条sql语句
怎么修改呢,就是把pg执行预处理改为手动或者只对其中的一条语句进行预处理
let sql = `
DELETE FROM bridge_parts
WHERE id = '${id}';
DELETE FROM bridge_quantity
WHERE bridge_part_id = '${bridgePartId}'`
cannot insert multiple commands into a prepared statement问题原因及解决办法的更多相关文章
- Postgre cannot insert multiple commands into a prepared statement
悲剧... FireDAC连接Postgre数据库, 使用默认的属性, 一次执行多条SQL的时候, 会报"cannot insert multiple commands into a pre ...
- postgre数据库插入错误:prepared statement “S_1”already exist, 解决办法
在使用kettle工具(数据迁移软件)在postgre数据库中插入记录时,出现如下错误,解决办法: 在/etc/pgsql/pgbouncer.ini中修改配置,设置 server_reset_que ...
- Multiple dex files define Lcom/sina/sso/RemoteSSO错误解决办法
在安卓上遇到了Multiple dex files define Lcom/sina/sso/RemoteSSO的编译错误 在网上找解决办法 搜到了解决办法是这样的 方案1:Eclipse->P ...
- mybatis错误Invalid bound statement (not found) 的解决办法
<!-- IDEA需要添加一下内容,否则无法找到mapper --> <build> <resources> <resource> <direct ...
- mybatis Invalid bound statement (not found)错误解决办法
由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层.service层平级的src目录 ...
- 关于MyEclipse不停报错multiple problems have occurred 或者是内存不足 的解决办法
这是因为 worksapace与svn代码不一样,要更新! 一更新就好了,困扰死我了,卧槽,搞了2个小时,难怪svn一提交就卡死人,原来还就是svn的问题,更新一下就行.
- Invalid bound statement (not found) 终极解决办法
网上已经有很多文章说明可能导致这个报错的原因,无非是以下几种:1.检查xml文件的namespace是否正确 2.Mapper.java的方法在Mapper.xml中没有,然后执行Mapper的方法会 ...
- Mybatis plus 报错Invalid bound statement (not found) 终极解决办法
我产生的错误原因是写的mapper继承BaseMapper没有添加泛型: 点进去: 为了解决这个bug,网上很多人也提出了解决办法:1.检查xml文件的namespace是否正确 2.Mapper.j ...
- 对PostgreSQL的prepared statement的深入理解
看官方文档: http://www.postgresql.org/docs/current/static/sql-prepare.html PREPARE creates a prepared sta ...
随机推荐
- Python--day40--datetime,socketserver,Threading模块分别是哪些模块的高层模块
- Codeforces Round #561 (Div. 2) E. The LCMs Must be Large(数学)
传送门 题意: 有 n 个商店,第 i 个商店出售正整数 ai: Dora 买了 m 天的东西,第 i 天去了 si 个不同的个商店购买了 si 个数: Dora 的对手 Swiper 在第 i 天去 ...
- ZOJ 1276 "Optimal Array Multiplication Sequence"(最优矩阵链乘问题+区间DP)
传送门 •题意 矩阵 A(n×m) 和矩阵 B(m×k) 相乘,共做 n×m×k 次乘法运算: 给你 n 个矩阵,求这 n 个矩阵的最优结合方式,使得做的总乘法运算次数最少: •题解 定义dp(i,j ...
- CCPC2018 桂林 D "Bits Reverse"
传送门 题目描述 Now given two integers x and y, you can reverse every consecutive three bits ,,) means chan ...
- element el-table 添加分页连接的序号,清除sortable排序
先看代码: <el-table :data="tableData" style="width: 100%" stripe size="mediu ...
- jquery ajax请求步骤
$.ajax({ type: "GET", url: "/alink-hq/checkCode", data: { "mobile": ph ...
- android权限申请执行过程
弹出的授权对口窗口实际上是一个activity(隐式intent启动上图第二个方块里)(com.android.packageinstaller.permission.ui.Grantpermissi ...
- 使用BFD检测EBGP邻居
在广域网BGP环境中,通常使能BFD以快速实现链路故障后的路由的主动收敛. BFD使用UDP在链路上进行双向检测,BFD有Echo mode和asynchronous mode两种模式,默认为Echo ...
- HDU 1969 Pie [二分]
1.题意:一项分圆饼的任务,一堆圆饼共有N个,半径不同,厚度一样,要分给F+1个人.要求每个人分的一样多,圆饼允许切但是不允许拼接,也就是每个人拿到的最多是一个完整饼,或者一个被切掉一部分的饼,要求你 ...
- Oracle 11g R2 for Win10(64位)的安装注意点
一般我们在win10系统安装oracle11g或者10g及更低版本的oracle客户端时,都是无法安装,一般安装的时候会闪退.这是什么原因呢?其实很简单,win10出的时间比较晚,在oracle11g ...