У меня есть база данных mySQL, и у меня есть скрипт Perl, который подключается к ней и выполняет некоторые манипуляции с данными.
Одна из таблиц в БД выглядит так:
CREATE TABLE `mydb`.`companies` (
`company_id` INT NOT NULL AUTO_INCREMENT,
`company_name` VARCHAR(100) NULL ,
PRIMARY KEY (`company_id`) );
Я хочу вставить некоторые данные в эту таблицу. Проблема в том, что некоторые компании в данных могут повторяться.
Вопрос: как я могу проверить, что "company_name" уже существует? Если он существует, мне нужно извлечь «company_id» и использовать его для вставки данных в другую таблицу. Если это не так, то эта информация должна быть введена в эту таблицу, но у меня уже есть этот код.
Вот некоторые дополнительные требования: скрипт может запускаться несколько раз одновременно, поэтому я не могу просто прочитать данные в хеш и проверить, существует ли они уже.
Я могу выдать дополнительный запрос «SELECT», но это создаст дополнительный удар по БД.
Я пытался найти ответ, но каждый вопрос здесь или в теме в Интернете говорит об использовании проверки первичного ключа. Мне это не нужно Структура БД уже установлена, но я могу внести изменения, если это необходимо. Эта таблица будет использоваться в качестве дополнительной таблицы.
Есть ли другой способ? И в БД, и в Perl.