gpt4 book ai didi

java - 使用 SQL Server 和 MyBatis 的批处理 "insert if missing"

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:27 24 4
gpt4 key购买 nike

我有一个整数列表,我想将其(批量)插入到具有单个整数列的 SQL Server 表中。

问题是插入的一些值可能已经存在于表中。有没有办法在 Sql Server 和 MyBatis 中执行批处理“如果丢失则插入”?

最佳答案

以下映射器对我有用:

<insert id="batchAddIntegers" parameterType="java.util.List">
DECLARE @ValuesToInsertTempTable TABLE (ColumnName integer)
DECLARE @UpdateVariable integer

SET NOCOUNT ON

INSERT INTO @ValuesToInsertTempTable (ColumnName) VALUES
<foreach item="item" index="index" collection="list" open="(" separator="),(" close=")">
#{item}
</foreach>

SET NOCOUNT OFF

MERGE TargetTable
USING @ValuesToInsertTempTable AS S
ON TargetTable.ColumnName=S.ColumnName
WHEN NOT MATCHED THEN
INSERT (ColumnName) VALUES (S.ColumnName)
WHEN MATCHED THEN
UPDATE SET @UpdateVariable = @UpdateVariable + 1;
</insert>

关于java - 使用 SQL Server 和 MyBatis 的批处理 "insert if missing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com