在c中使用dapper插入mysql数据库之前,如何检查mysql数据库中是否已经存在具有复合键的记录#

kxe2p93d  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(389)

供应商和发票是由9个字段组成的表中的复合键

jpfvwuh4

jpfvwuh41#

您可以简单地先执行select查询,然后再执行insert,也可以在一次行程中执行,如下所示(SQLServer)。您可以使用此处列出的推荐dapper扩展之一

string cmd = @"IF NOT EXISTS (SELECT * FROM Table1 WHERE SupplierId=@SupplierId AND InvoiceId=@InvoiceId)
                    BEGIN 
                        INSERT INTO Table1(SupplierId, InvoiceId) VALUES(@SupplierId, @InvoiceId)
                    END";

using (var dbConn = new SqlConnection("Server=(local);Database=MyDatabase;Integrated Security=true"))
{
    dbConn.Execute(cmd, new { SupplierId = 1, InvoiceId = 2 });
}
Console.ReadKey();

更新mysql,你可以写 INSERT INTO Table1 (SupplierId, InvoiceId) VALUES(@SupplierId, @InvoiceId) ON DUPLICATE KEY SupplierId=SupplierId https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

相关问题