次のような作成された 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);
このテーブルに行を挿入するプロセスが複数あります。2 つのプロセスが同じ「名前」を挿入しようとした場合、そのうちの 1 つがエラーを取得するか、一致する「名前」を持つ行を見つけるようにしたいと考えています。
テーブルをロックし、ロックで名前が存在しないことを確認する必要がありますか、または一意のインデックス付きフィールドに既に存在する値を挿入しようとするプロセスの 1 つにエラーを与えるサーバーに依存する必要がありますか?
デッドロック状態になりたくないので、ロックを使用するのを少しためらっています。