gpt4 book ai didi

c# - 如何在插入失败时获取冲突行的主键?

转载 作者:行者123 更新时间:2023-11-30 21:32:09 26 4
gpt4 key购买 nike

在我尝试将一行插入数据库但由于重复(不是主键冲突 - 另一个键)而失败后,如何获取阻止插入的冲突行的主键?

例子:表格:

CREATE TABLE `my_table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`unique_value` varchar(60) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_data` (`unique_values`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

一些初始数据:

INSERT INTO `my_table`(`unique_value`) VALUES ('unique string 1');
INSERT INTO `my_table`(`unique_value`) VALUES ('unique string 2');

现在,由于索引中的冲突,这将失败:

MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO `my_table`(`unique_value`) VALUES 'unique string 2'";
comm.ExecuteNonQuery();
conn.Close();

我可以在不进行另一个查询的情况下获取冲突行的主键吗?

最佳答案

在创建表时,您可以使用“Identity”关键字,它将完成所有“非空和自动递增”的工作。但这是针对 MsSQL 的试试这个:

create table my_table
(
ID int Primary key identity,
unique_value varchar(60) NOT NULL
)

关于c# - 如何在插入失败时获取冲突行的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676306/

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