Подавить MYSQL Ошибка 1452
У меня есть таблица, предназначенная для хранения ежедневных данных, связанных с акциями, а дата цены - это внешний ключ в моей календарной таблице. В календарной таблице перечислены все действительные даты, которые не включают выходные. Я только что получил 20 лет ежедневных данных об обмене валюты, и, кажется, они включают в себя по крайней мере несколько выходных. Я создал сценарии с командами вставки для всего, зная, что я получу ошибку 1452 в записях выходных (означающая, что ограничение внешнего ключа не выполняется). Я полностью согласен с этим, так как MySQL попытается вставить запись, потерпеть неудачу и двигаться дальше. Проблема в том, что сообщение об ошибке выводится на консоль для всех тысяч ошибок вставки. Вся эта дополнительная печать stdout существенно замедляет мой первый скрипт вставки (всего 1 год, по крайней мере, 10 минут).
Как я могу подавить это сообщение об ошибке? Пожалуйста, не говорите, что сообщение об ошибке "говорит мне что-то важное", или я должен "обратить на это внимание", или я должен "отладить свой сценарий". Я точно знаю, почему возникает ошибка, и просто хочу ее устранить.
1 ответ
Вы можете попробовать использовать INSERT IGNORE
Например:
INSERT IGNORE INTO myTable (myColumn) values ('myValue');
Должно подавить ваше сообщение об ошибке...
Откройте консоль MySQL и запустите:
SET GLOBAL FOREIGN_KEY_CHECKS=0;
После того, как вы закончите, отмените его:
SET GLOBAL FOREIGN_KEY_CHECKS=1;