2009-02-16 5 views
4

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

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

ответ

3

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

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

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

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

+0

Это импорт MySQL, выполненный путем запуска 'mysql Tom

+3

Из mysql --help вы ищете опцию -f: -f, --force Продолжайте, даже если мы получим ошибку sql. – mluebke

0

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

+2

Иногда вам необходимо обновить производственную базу данных, которая уже имеет данные с помощью автоматизированного способа (например, при установке обновления программного обеспечения). Я пришел к этому вопросу именно из-за этого, и очень сложно увидеть способ обойти это без предварительной разработки схемы. –