我想检查我的表中是否存在特定列。如果它不存在我想用C编程语言添加它。
我尝试了以下代码:
mysql_query(sqlhnd, "SELECT * FROM my_table");
MYSQL_RES *confres = mysql_store_result(sqlhnd);
int totalrows = mysql_num_rows(confres);
int numfields = mysql_num_fields(confres);
MYSQL_FIELD *mfield;
while((row = mysql_fetch_row(confres)))
{
for(i = 0; i < numfields; i++)
{
char *val = row[i];
// do something with val...
}
}
我想将val与列名进行比较,例如:
if( !strcmp(val,"column")) { create the column using alter table }
我无法执行此部分代码
答案 0 :(得分:0)
MySQL有一些方法,但我省略了C代码:
desc my_table
并在输出中查找您的列。select your_col from my_table limit 1
并查找真实错误(不是空集)SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='your_db' AND TABLE_NAME='my_table';
我更喜欢第三种选择。它为您提供了特定表的所有列名称列表。我认为,根据您的尝试,您不会获得列名,只能获取其内容。