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

在节点和后记中键入错误

訾旭
2023-03-14

我正在根据为postgres提供的对象列表生成一个动态更新查询。我的查询如下所示:

update loan_item_assignment as t set id = c.id, dateselectionid = c.dateselectionid, loanitemid = c.loanitemid, active = c.active, type = c.type from (values ( $1, $2, $3, $4, $5 ), ( $6, $7, $8, $9, $10 ), ( $11, $12, $13, $14, $15 ), ( $16, $17, $18, $19, $20 ), ( $21, $22, $23, $24, $25 ), ( $26, $27, $28, $29, $30 ), ( $31, $32, $33, $34, $35 ), ( $36, $37, $38, $39, $40 ) ) as c( id, dateselectionid, loanitemid, active, type ) where c.id = t.id returning *

这是我给它的价值列表:

[ 7,
35,
3,
true,
'normal',
8,
35,
4,
true,
'normal',
1,
35,
6,
true,
'normal',
2,
35,
7,
true,
'normal',
3,
35,
8,
true,
'normal',
5,
35,
10,
true,
'normal',
4,
35,
11,
true,
'normal',
6,
35,
12,
true,
'normal' ]

据我所知,这些值匹配正确。这是我看到的错误:

{ [error: operator does not exist: text = integer]
name: 'error',
length: 195,
severity: 'ERROR',
code: '42883',
detail: undefined,
hint: 'No operator matches the given name and argument type(s). You might need to add explicit type casts.',
position: '448',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_oper.c',
line: '726',
routine: 'op_error' }

这是最终运行查询的代码:

var performQuery = function(text, values, cb) {
   pg.connect(connectionString, function(err, client, done) {
     client.query(text, values, function(err, result) {
       done();
       if (!result) {
         console.log(err);
         cb([], err);
       } else {
         cb(result.rows, err);
       }
     })
   });

}

这是表定义

Table "public.loan_item_assignment"
Column      |  Type   |                             Modifiers                             | Storage  | Stats target | Description 
-----------------+---------+-------------------------------------------------------------------+----------+--------------+-------------
id              | integer | not null default nextval('loan_item_assignment_id_seq'::regclass) | plain    |              | 
dateselectionid | integer |                                                                   | plain    |              | 
loanitemid      | integer |                                                                   | plain    |              | 
active          | boolean |                                                                   | plain    |              | 
type            | text    |                                                                   | extended |              | 
Indexes:
"loan_item_assignment_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
"loan_item_assignment_dateselectionid_fkey" FOREIGN KEY (dateselectionid) REFERENCES date_selection(id)
"loan_item_assignment_loanitemid_fkey" FOREIGN KEY (loanitemid) REFERENCES loan_item(id)

共有1个答案

燕雨石
2023-03-14

维塔利-t对我的回答的评论是解决方案——使用pgpromise库生成查询,特别是生成多行更新查询的方法helpers.update,如Node.js.中的PostgreSQL多行更新所示

 类似资料:
  • 我试图编写一个方法来插入一个节点和移除链表后面的一个节点。下面是我在其中编写方法的主类。它们在底部(insertBack和removeBack): 可能有格式错误,因为我粘贴到这里,但我仍然试图找出如何使用这个网站。当我运行如下所示的驱动程序类时,我会得到如下所示的结果。 有人能帮我弄清楚为什么我的removeFront和removeBack方法不起作用吗?

  • 而这是我的主课,有没有其他方法做得更有效率?

  • 问题内容: 我有一个简单的输入数字,例如: 尝试输入数字或字母“ e”以外的任何内容时,它不起作用,但是当我输入字母“ e”时,它起作用。 我检查了w3.org规范,它清楚地表明可以使用常规表示法(例如:10.2)或科学表示法(例如:1e2)来键入浮点数。 所以我的问题是:有没有一种方法可以防止用户键入e字母和点。用另一种方式说:有没有一种方法可以使输入数字 只 接受 整数 ? 我有一个用Angu

  • 我想知道如何实现这个功能: 我有一个可编辑的JTree,可以编辑节点的名称。如果我有一个节点是分支节点(其中有一些叶节点),并且该分支节点在编辑时展开,编辑后,该节点将折叠。 编辑完成后,如果分支节点打开,我想让它保持打开状态,如果分支节点折叠,我想让它折叠。 我试图查看TreeWireExpandListener,但它似乎无法解决我的问题,因为在调用这些方法之前,我需要识别实际节点是否处于编辑模

  • 我在做一个程序,没有使用Java的内置链表类;我在从头开始做。除了编写一个将节点插入链表的特定位置的方法外,我在所有方面都取得了成功。 我有一个方法将一个特定的节点设置为“当前”节点。所以,例如,我有一个链表,看起来是这样的:猫-->狗-->使-->好-->宠物,“当前”等于2;这意味着“当前”节点是“狗”。 从这里开始,假设我想在“current”的位置插入一个新节点,它的info字段为AND。

  • 子外键引用为空。这个外键只是父表的主键。 我下面有两个表,其中有@OneToMany(父)和@ManyToOne(子)映射。记录插入到父项以及子项中,子项中的外键值除外。 下面的确认中有什么遗漏吗? 我在github中上传了代码:https://github.com/harshalpatil2012/Springboot