C中判断Mysql数据库中是否存在表

先占位,以后编辑

有四种方式进行判断:

1. SHOW TABLES LIKE 'testtable'; 

这种方法在代码中不易实现.
2. select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA='dbname' and TABLE_NAME='tablename' ;

这种方法实现起来比较简单。一个判断mybase中是否存在testtable表的实例:

MYSQL mysql;
MYSQL_RES* result = NULL;
int count = 0;
if(0==mysql_query(&mysql,"select table_name from information_schema.tables where TABLE_SCHEMA='mybase' and TABLE_NAME='testtable'"))
{ 
 result = mysql_store_result(&mysql);
 count = mysql_num_rows(result);
}
else
{
 printf("Error: %s\n\n",mysql_error(&mysql));
}
if(count>0) printf("已存在该表");

3.通过调用mysql_list_tables(MYSQL* mysql,"tablename")实现。

依旧是判断当前连接mybase库中是否存在testtable实例:

MYSQL_RES *result=mysql_list_tables(&mysql,"testtable");
MYSQL_ROW row;
int count = 0;
while((row=mysql_fetch_row(result))!=NULL)
{	
	printf("TABLE %d: %s\n",cnt,row[0]);  
	cnt++;
}
if (mysql_errno(&mysql))  //mysql_fetch_row() failed due to an error
{
	fprintf(stderr, "Error:%s\n",mysql_error(&mysql));
}
if(count>0) printf("该表已存在");

4. 如果表不存在就建立这个表,那么可以直接用 create table if not exists tablename 这样的指令来建立,不需要先去查询表是否存在。

实现是亦通过mysql_query()等API即可。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值