У меня есть таблица иш в 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);
У меня есть несколько процессов вставки строк в эту таблицу. Если два процесса пытаются вставить одно и то же «имя», я хочу убедиться, что один из них либо получает ошибку, либо находит строку с соответствующим «именем».
Должен ли я заблокировать таблицу и в замке убедиться, что имя не существует, или я должен полагаться на сервер, дающий ошибку одному из процессов, которые пытаются вставить значение, которое уже существует в уникальном индексированное поле?
Я немного нерешительно использую блокировку, потому что я не хочу вступать в тупик.
Пожалуйста, дайте мне знать, что вы думаете. Благодаря!
Я также хотел бы добавить, что он должен обязательно использовать try/catch для улавливания ошибки, чтобы приложение не просто умирало из-за ошибки SQL. – Vic 2010-11-18 21:09:47