MySQL添加忽略列功能不正常?
我试图使用以下代码向表中添加一列MySQL添加忽略列功能不正常?,mysql,sql,mysql-error-1060,Mysql,Sql,Mysql Error 1060,我试图使用以下代码向表中添加一列 ALTER IGNORE TABLE `EWRcarta_history` ADD `history_ip` int(10) unsigned NOT NULL DEFAULT '0' 我使用IGNORE是因为出于各种原因,我不想进入其中,这段代码可能会被调用多次。我想添加该列,但如果该列已经存在,则忽略该错误。我没有默默地失败并继续前进,而是出现了以下错误: #1060 - Duplicate column name 'history_ip' 我能
ALTER IGNORE TABLE `EWRcarta_history`
ADD `history_ip` int(10) unsigned NOT NULL DEFAULT '0'
我使用IGNORE是因为出于各种原因,我不想进入其中,这段代码可能会被调用多次。我想添加该列,但如果该列已经存在,则忽略该错误。我没有默默地失败并继续前进,而是出现了以下错误:
#1060 - Duplicate column name 'history_ip'
我能做些什么来实现这个功能吗?我最终使用了一个函数来处理这个问题:
public static function addColumnIfNotExist($db, $table, $field, $attr)
{
if ($db->fetchRow('SHOW columns FROM `'.$table.'` WHERE Field = ?', $field))
{
return false;
}
return $db->query("ALTER TABLE `".$table."` ADD `".$field."` ".$attr);
}
当然,我使用的函数如下:
self::addColumnIfNotExist($db, "table", "column", "attributes");