Нужен MySQL 4, чтобы игнорировать ошибки ALTER TABLE - PullRequest
4 голосов
/ 16 февраля 2009

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

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

Ответы [ 2 ]

3 голосов
/ 18 февраля 2009

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

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

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

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

0 голосов
/ 18 февраля 2009

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

...