我在mySql中有一个ISAm表,它是这样创建的:

create table mytable (
 id int not null auto_increment primary key,
 name varchar(64) not null );

create unique index nameIndex on mytable (name);

我有多个进程将行插入此表。如果两个进程尝试插入相同的“name”,我想确保其中一个进程要么得到错误,要么找到具有匹配“name”的行。
我是否应该锁定表和锁,确保名称不存在,或者我应该依赖服务器给试图插入唯一索引字段中已有的值的进程之一的错误吗?
我有点犹豫要不要用锁,因为我不想陷入僵局。

最佳答案

不要费心锁定,您的索引将防止重复。您应该处理应用程序中的错误代码。
当违反唯一键约束时,MySQL应该返回1062(或sqlstate2300)的错误代码。

关于mysql - 我应该锁定ISAM表以将值插入唯一键字段吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/169459/

10-15 16:43