Переопределение уникальных индексированных значений

Это то, что я делаю прямо сейчас ( name UNIQUE ):

 SELECT * FROM fruits WHERE name='apple'; 

Проверьте, возвратил ли запрос какой-либо результат. Если да, не делайте ничего. Если нет, необходимо добавить новое значение:

 INSERT INTO fruits (name) VALUES ('apple'); 

Вместо вышесказанного можно ли вставить значение в таблицу без проверки того, существует ли она уже? Если имя уже существует в таблице, будет выдана ошибка, и если это не так, будет вставлена ​​новая запись.

Прямо сейчас мне приходится вставлять 500 записей в цикл for, что приводит к 1000 запросам. Будет ли нормально пропустить проверку «уже существует»?

Вы можете использовать функцию IGNORE:

 INSERT IGNORE INTO fruits VALUES ('apple') 

Если есть нарушение ключа, оно просто пропускает это значение

проверять, выписываться

 INSERT IGNORE INTO ... 

а также

 INSERT ON DUPLICATE KEY UPDATE ... 

Второй метод предпочтительнее, поскольку оператор IGNORE просто заставляет mysql выдавать предупреждение вместо ошибки