Это то, что я делаю прямо сейчас ( 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 выдавать предупреждение вместо ошибки