Return 从 'insert' 查询中插入值
Return inserted values from 'insert' query
我有简单的 table,我需要从数组中插入值,但只有 table 和 return 中不存在的值来自查询插入的值,如何我可以做这个?
我有下一个查询,但它只插入值:
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 conflict
和 returning
:
insert into my_table(id, card_id, size)
values (?, ?, ?)
on conflict (card_id) do nothing
returning *
查询插入新行,returns 整行(包括最初未指定用于插入的列)。如果已经存在具有相同 card_id
的行,则不会执行插入(为此,您需要 card_id
上的唯一索引或约束)。
请注意,您应该使用查询参数(如上所示)而不是在查询字符串中连接变量。看看你的客户端的参数化查询功能。
我有简单的 table,我需要从数组中插入值,但只有 table 和 return 中不存在的值来自查询插入的值,如何我可以做这个? 我有下一个查询,但它只插入值:
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 conflict
和 returning
:
insert into my_table(id, card_id, size)
values (?, ?, ?)
on conflict (card_id) do nothing
returning *
查询插入新行,returns 整行(包括最初未指定用于插入的列)。如果已经存在具有相同 card_id
的行,则不会执行插入(为此,您需要 card_id
上的唯一索引或约束)。
请注意,您应该使用查询参数(如上所示)而不是在查询字符串中连接变量。看看你的客户端的参数化查询功能。