查看: 7554|回复: 0
打印 上一主题 下一主题

windows + C++ 判断mysql是否存在某张表

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-31 14:36:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
今天因为要做一程序,在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感兴趣的,提出自己的其它好办法.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表