У меня есть таблица в MySQL, которая обновляется каждую ночь с помощью задачи cron. Каждая строка изменяется, потому что я получаю данные из файла XLS и должен обновлять все значения.MySQL «UPSERT» и удалять не затронутые строки
Сначала я задал вопрос, стоит ли обновлять каждую строку или, с другой стороны, просто удалить все и вставить ее снова. Я придерживаюсь метода UPSERT, поскольку я читал, что он был более адекватным, быстрым и даже элегантным, который выбрасывал все данные, но, пожалуйста, исправьте меня, если я ошибаюсь.
ХОРОШО, так что теперь мой вопрос о строках, которые не новы и не обновляются каждый раз, когда работает cron. XLS, возможно, не имеет фиксированной длины, поэтому в один прекрасный день может быть несколько строк меньше ... или больше.
Как удалить эти строки в одном заявлении «UPSERT»?
Edit: я понял, что, может быть, в этом случае это просто лучше отказаться от старых данных и повторно добавить их, хотя в первой моей целью было избежать этого.
Спасибо за ответ. Вы хотите удалить всю таблицу и повторно вставить все данные каждый раз? Как я уже сказал в этом вопросе, это было мое первое намерение, но, похоже, не было надежным для обеспечения доступности данных и профессиональной/хорошей практики. Я хочу избежать этого и реализовать более чистое решение. Я думал, есть ли механизм для выполнения того, что я прошу, поскольку это может быть распространенным сценарием для многих людей. – Alberto
Это не общий сценарий. Если вам не нужны старые данные, то почему вы беспокоитесь о доступности данных. Нет стандартных способов, с помощью которых вы можете идентифицировать несоответствующие данные в таблице из одного файла при выполнении операции upsert. Если вам не нужны старые данные (нет в данном файле), то в чем смысл хранить эти данные. –
Я не хочу хранить старые данные (мой вопрос о том, как удалить его). Итак, вкратце вы считаете, что в этом случае операция удаления-все/вставить все будет лучше? – Alberto