从"插入"查询返回插入的值



我有一个简单的表,我需要插入数组中的值,但只有表中不存在的值,并从查询中返回插入的值,我该怎么做?我有下一个查询,但它只是插入值:

INSERT INTO my_table(id, card_id, size) 
VALUES ${myArray.map(item => `($${addDbValue(item.id, dbValues)}, 
$${dbValues.push(item.card_id)}::int, '24')`)}
`, dbValues)

唯一的是card_id

您似乎想要on conflictreturning:

insert into my_table(id, card_id, size) 
values (?, ?, ?)
on conflict (card_id) do nothing
returning *

查询插入新行,并返回整行(包括最初未指定插入的列(。如果已经存在具有相同card_id的行,则不执行插入(要使其工作,需要对card_id使用唯一索引或约束(。

请注意,您应该使用查询参数(如上所示(,而不是在查询字符串中串联变量。看看您的客户端的参数化查询功能。

相关内容

  • 没有找到相关文章

最新更新