2012-03-05 116 views

回答

2

试试这个

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME = 'column_name' 
2
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'my_table' AND COLUMN_NAME = 'my_column' 

如果上面的内容返回0行,那么您知道该列不存在。

1

您可以用这种方式

SHOW columns from `yourtable` where field='yourfield' 
1

可以检索字段的存在做...

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'your_db_name' 
AND TABLE_NAME = 'your_table_name' 
AND COLUMN_NAME = 'your_column_name' 

...但你根据结果​​不能添加ALTER-陈述。 SQL不能做到这一点。

这种逻辑的地方是存储过程或应用程序语言。

0

试试这个

function add_column_if_not_exist($db, $column, $column_attr ="VARCHAR(255) NULL") 
{ 
    $exists = false; 
    $columns = mysql_query("show columns from $db"); 
    while($c = mysql_fetch_assoc($columns)){ 
     if($c['Field'] == $column){ 
      $exists = true; 
      break; 
     } 
    }  
    if(!$exists){ 
     mysql_query("ALTER TABLE `$db` ADD `$column` $column_attr"); 
    } 
} 
相关问题