检查特定数据库表是否有某个字段
一下内容均以MySql数据库为基础,使用 C#的MySql.Data.MySqlClient 库进行数据库操作
- 方法一, 使用
Describe
语句;
bool hasFieldName = false;
string sql = "Describe tablename `fieldName`";
MySqlCommand cmd = new MySqlCommand(con,sql)
MySqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
//能获取到列的信息,说明该数据库表存在列,否则不存在
hasFieldName = true;
}
- 方法二,使用
INFORMATION_SCHEMA
bool hasFieldName = false;
string sql = " select Column_Name from INFORMATION_SCHEMA.COLUMNS where table_name ='" + tableName + "'";
MySqlCommand cmd = new MySqlCommand(con,sql);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
var dbfield = reader.GetString(0);
if (dbfield == fieldName)
{
//在数据库元表中查到了列名,说明存在该列
hasFieldName = true;
break;
}
}
以下是对使用到的MySQL知识点介绍
- Describe语句介绍
可以查看这个大佬的博客 MySQL语句之describe,explain,help,use
- INFORMATION_SCHEMA 介绍