- 論壇徽章:
- 0
|
作者:hnynes
QQ :61737489
E-mail:
hnynes1015@163.com
msn:
hnynes@gmail.com
個人主頁:
http://hnynes.51.com
CU博客 :
http://hnynes.cublog.cn
今天因為要做一程序,在mysql里面查找是否存在某張表,特意,在網(wǎng)上找了好久,終于找到了.其實也算不上原創(chuàng),發(fā)在下面,與大家一起分享.
方法1:直接檢測并創(chuàng)建
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的對象執(zhí)行上面的腳本就可以在mysql中,查找是否存在表helloworld,如果不存在的話,就直接創(chuàng)建該表.
方法2:也是使用腳本,但這種我只在管理器里面成功過,在代碼里面感覺要處理這個還有點困難.
show TABLES like 'buzidao';
方法3:使用腳本,我認為此種方法最好了.
先用Database對象去執(zhí)行腳本use information_schema;
然后用Recordset對象執(zhí)行腳本
select count(*) AS table_count from tables where table_schema = '數(shù)據(jù)庫名' and table_name = '表名'
接下來,可以依據(jù)列名去獲取表的個數(shù).
方法4:使用腳本,較第三種簡單
select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'buzidao'
因為在此,我的重點是如何去判斷myslq是否存在某張表,多數(shù)都只有腳本,沒有程序段.以上腳本我都在C++里面測試過,可以通過.然后,我所說的Database,Recordset對象,都是直接封閉COM的.
感覺mysql里面,非標的東西太多了.但愿在以后的版本中能有所改觀啊.
歡迎對mysql感興趣的,提出自己的其它好辦法.
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/37603/showart_708073.html |
|