.net 根据条件插入数据
我试图弄清楚是否有可能使用Dapper将对象列表插入到表中,但也要应用某种检查来查看应该包含哪些数据.net 根据条件插入数据,.net,postgresql,dapper,.net,Postgresql,Dapper,我试图弄清楚是否有可能使用Dapper将对象列表插入到表中,但也要应用某种检查来查看应该包含哪些数据 var data = new List<TestInsertDataDto> { new TestInsertDataDto { InsertId = 1, Value = 2 }, new TestInsertDataDto { InsertId = 2, Value = 3 }, new TestInsertDataDto { InsertId = 3,
var data = new List<TestInsertDataDto>
{
new TestInsertDataDto { InsertId = 1, Value = 2 },
new TestInsertDataDto { InsertId = 2, Value = 3 },
new TestInsertDataDto { InsertId = 3, Value = 6 }
};
await connection.ExecuteAsync(@"
INSERT INTO test_data (insertid, value)
VALUES (@InsertId, @Value)
-- I'd like to do a row per row check here to determine if the row should be
-- inserted or if this row for some reason shouldn't be inserted. This check
-- requires a query on the test_data table and a join on another table.", data)
;
var数据=新列表
{
新TestInsertDataDto{InsertId=1,Value=2},
新TestInsertDataDto{InsertId=2,Value=3},
新TestInsertDataDto{InsertId=3,Value=6}
};
等待连接。ExecuteAsync(@“
插入测试数据(插入ID,值)
值(@InsertId,@Value)
--我想在这里每行检查一行,以确定该行是否应该
--已插入或由于某种原因不应插入此行。此检查
--需要对test_数据表进行查询,并对另一个表进行联接。“,data)
;
您可以根据另一个查询有条件地插入记录,使用EXISTS
或NOT EXISTS
这看起来像:
INSERT INTO test_data (insertid, value)
SELECT @InsertId, @Value
WHERE EXISTS (
SELECT *
FROM test_data
WHERE -- some condition
)
您可以根据另一个查询有条件地插入记录,该查询使用
存在
或不存在
这看起来像:
INSERT INTO test_data (insertid, value)
SELECT @InsertId, @Value
WHERE EXISTS (
SELECT *
FROM test_data
WHERE -- some condition
)
你能做到。我建议您为此创建一个存储过程。使用dapper将参数传递给过程,并在存储过程中尝试下面的代码
INSERT INTO table (id, val) SELECT @InsertId, @Value WHERE EXISTS ( SELECT * FROM test_data WHERE -- your condition )
你能做到。我建议您为此创建一个存储过程。使用dapper将参数传递给过程,并在存储过程中尝试下面的代码
INSERT INTO table (id, val) SELECT @InsertId, @Value WHERE EXISTS ( SELECT * FROM test_data WHERE -- your condition )
我能在那里做“每行一行”的检查吗?与测试数据td中的
类似,其中@Value>td.Value或@InsertId>td.InsertId
将“每行”执行此检查。此函数将返回受影响的记录,因此您可以进行检查:)我可以在那里执行“每行一行”检查吗?与测试数据td中的类似,其中@Value>td.Value或@InsertId>td.InsertId
将“每行”执行此检查。此函数将返回受影响的记录,因此您可以检查它:)