Mysql脚本检查列表是否存在或在表中添加列之前
答
试试这个
SELECT *
FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name'
AND TABLE_NAME = 'table_name'
AND COLUMN_NAME = 'column_name'
答
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'my_table' AND COLUMN_NAME = 'my_column'
如果上面的内容返回0行,那么您知道该列不存在。
答
您可以用这种方式
SHOW columns from `yourtable` where field='yourfield'
答
可以检索字段的存在做...
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不能做到这一点。
这种逻辑的地方是存储过程或应用程序语言。
答
试试这个
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");
}
}
看到这个http://stackoverflow.com/questions/3395798/mysql-check-if-a-column-exists-in-a-table-with-sql – abhinav 2012-03-05 06:51:13