Вставка с execute many, пропуская строки, которые не соответствуют ограничениям внешнего ключа

#python #mysql #foreign-keys #mysql-connector-python #mysql-error-1452

#python #mysql #внешние ключи #mysql-connector-python #mysql-ошибка-1452

Вопрос:

Я использую Python mysql.connector. Мне приходится делать много вставок. Данные, которые я вставляю, вероятно, будут содержать некоторые строки, которые не будут соответствовать ограничению внешнего ключа и, таким образом, вернут ошибку mysql 1452.

  add_specific="""
INSERT INTO `specific info type`
(`name`, `Classification Type_idClassificationType`)
VALUES
(%s, %s);
"""
cursor.executemany(add_specific, specific_info)
 

Есть ли способ, с помощью которого я могу выполнить все вставки, и в случае 1452 этот пример будет просто пропущен. Я читал, что executemany более эффективен, поэтому я бы предпочел использовать его. Я думаю, я мог бы перебрать все примеры, сделать отдельные вставки и перехватить исключение.

Ответ №1:

Использование INSERT IGNORE INTO whatever и MySQL будут игнорировать строки, которые не вставляются.