免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1980 | 回复: 0
打印 上一主题 下一主题

windows + C++ 判断mysql是否存在某张表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-27 13:12 |只看该作者 |倒序浏览
作者:hnynes
QQ :61737489
E-mail:
hnynes1015@163.com
msn:   
hnynes@gmail.com
个人主页:
http://hnynes.51.com
CU博客  :
http://hnynes.cublog.cn


今天因为要做一程序,在mysql里面查找是否存在某张表,特意,在网上找了好久,终于找到了.其实也算不上原创,发在下面,与大家一起分享.

方法1:直接检测并创建
CREATE TABLE if not exists helloworld (
PLAYERID int(11) NOT NULL DEFAULT '0',
PLAYERNAME varchar(100) DEFAULT NULL,
SEVID int(11) NOT NULL DEFAULT '0',
SEVNAME varchar(100) DEFAULT NULL,
TOTALMARK decimal(20,1) NOT NULL DEFAULT '0.0',
TOTALRANK int(11) NOT NULL DEFAULT '0',
ONLINESEC int(11) NOT NULL DEFAULT '0',
ONLINEHOUR int(11) NOT NULL DEFAULT '0',
ONLINEMIN int(11) NOT NULL DEFAULT '0',ONLINESECOND int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`PLAYERID`,`SEVID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
只要使用Database的对象执行上面的脚本就可以在mysql中,查找是否存在表helloworld,如果不存在的话,就直接创建该表.

方法2:也是使用脚本,但这种我只在管理器里面成功过,在代码里面感觉要处理这个还有点困难.
show TABLES like 'buzidao';

方法3:使用脚本,我认为此种方法最好了.
先用Database对象去执行脚本use information_schema;
然后用Recordset对象执行脚本
select count(*) AS table_count from tables where table_schema = '数据库名' and table_name = '表名'
接下来,可以依据列名去获取表的个数.

方法4:使用脚本,较第三种简单
select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'buzidao'


因为在此,我的重点是如何去判断myslq是否存在某张表,多数都只有脚本,没有程序段.以上脚本我都在C++里面测试过,可以通过.然后,我所说的Database,Recordset对象,都是直接封闭COM的.
感觉mysql里面,非标的东西太多了.但愿在以后的版本中能有所改观啊.


欢迎对mysql感兴趣的,提出自己的其它好办法.




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37603/showart_708073.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP