【发布时间】:2010-10-07 21:23:10
【问题描述】:
我有一个在特定条件下自动执行的 MySQL 脚本。该脚本执行ALTER TABLE 命令,因为数据库中需要该列,但它可能有也可能没有...
如果列不存在,是否可以让 MySQL 4 执行 ALTER TABLE 语句或忽略此单个命令的 重复列 错误并允许脚本继续执行?
【问题讨论】:
标签: mysql alter-table mysql4
我有一个在特定条件下自动执行的 MySQL 脚本。该脚本执行ALTER TABLE 命令,因为数据库中需要该列,但它可能有也可能没有...
如果列不存在,是否可以让 MySQL 4 执行 ALTER TABLE 语句或忽略此单个命令的 重复列 错误并允许脚本继续执行?
【问题讨论】:
标签: mysql alter-table mysql4
ALTER [IGNORE] TABLE 只会忽略某些错误,例如添加新 UNIQUE 索引时出现重复键错误或 SQL 模式错误。
http://dev.mysql.com/doc/refman/4.1/en/alter-table.html
有关您正在使用的“脚本”的更多详细信息将有助于回答问题。例如,在 python 中,错误会引发异常,然后可以捕获并处理或忽略该异常。
[编辑] 从下面的评论中,您似乎正在寻找 mysql -f 命令行选项。
【讨论】:
mysql < file 完成。导入过程是自动化的,所以我试图避免“接触”调用者。编写一个 bash 来检查这一点很容易,但我宁愿不修改导入脚本。
您可以在尝试添加列之前先检查表架构吗?但是,我强烈怀疑您需要动态添加列的设计。有些事情不太对劲。你能详细解释一下这个要求吗?我敢肯定还有其他更清洁的方法。
【讨论】: