Нужен MySQL 4, чтобы игнорировать ошибки ALTER TABLE


У меня есть скрипт MySQL, который выполняется автоматически при определенных условиях. Этот скрипт выполняет команду ALTER TABLE, поскольку этот столбец необходим в базе данных, но он может иметь или не иметь его...

Можно ли заставить MySQL 4 выполнить оператор ALTER TABLE, если столбец не существует или игнорировать ошибку дубликата столбца для этой единственной команды и позволить выполнению сценария продолжаться?

2 4

2 ответа:

ALTER [IGNORE] TABLE будет игнорировать только некоторые ошибки, такие как повторяющиеся ключевые ошибки при добавлении нового уникального индекса или ошибки режима SQL.

Http://dev.mysql.com/doc/refman/4.1/en/alter-table.html

Более подробная информация о" скрипте", который вы используете, поможет ответить на этот вопрос. В python, например, ошибка вызовет исключение, которое затем может быть поймано и обработано или проигнорировано.

[EDIT] из комментария ниже, похоже, что вы ищете опция командной строки mysql-f.

Вы можете сначала проверить схему таблицы, прежде чем пытаться добавить столбец? Однако я сильно подозреваю дизайн, где нужно добавлять колонки на лету. Что-то здесь не так. Можете ли вы объяснить это требование немного подробнее? Я уверен, что есть и другие более чистые способы обойти это.