1. 程式人生 > >C中判斷Mysql資料庫中是否存在表

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即可。

相關推薦

C判斷Mysql資料庫是否存在

先佔位,以後編輯 有四種方式進行判斷: 1. SHOW TABLES LIKE 'testtable';  這種方法在程式碼中不易實現.2. select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA

Mybatis對於Mysql資料庫NULL的日期資料報錯 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP

原 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 2010年06月01日 17:38:00 閱讀數:5307

Mybatis對於Mysql資料庫NULL的日期資料報錯

問題:MySQL資料庫,如果資料庫中日期欄位為空為值為'0000-00-00 00:00:00"時,查詢的時候回報:Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP解決辦法:更改連線資料庫方式在連線:jdbc:mysq

C#從MySQL資料庫讀取

實現了資料庫的建表、儲存資料的功能後,還需要實現資料庫的讀取,綜合查資料後發現有兩種發發比較好; 一、如u需要介面操作,需要將資料表格在介面上顯示出來的話,需要使用DataGrid控制元件。 基本操作流程:宣告一個數據介面卡和資料集,並將讀取指令賦值給資料介面卡的指令,開啟資料庫,執行資料介

Access資料庫資料轉MySql資料庫

目錄 一、Navicat自帶匯入Access(*.mdb)資料的方式 二、藉助ODBC當然Access資料 1. 建立ODBC資料來源 2. 通過Navicat匯入資料 3. 新增鍵等 使用Navicat 8 for MySql來匯入資料,Access是2003版本的

C#執行mysql資料庫的儲存過程

1、使用navicat建立了三個儲存過程: pro_update_ip(不帶形參) pro_insert_user(帶三個形參 textUser、textDevice、textTime 都是text型別) pro_truncate_table(帶一個形參 truncat

c#之wpf 從mysql資料庫資料繫結到頁面上

博主最近在做小專案時,需要將資料繫結到頁面上,無奈c#前端沒有學好,所以走了寫彎路。 1.listview:首先listview是一個比較好的展示資料庫的資料的控制元件,可是呢,在wpf中listview的用法和winform的有些不一樣,博主努力查詢多天(搜度娘,谷歌等都

C#獲取MySQL資料庫的所有的名和欄位名及欄位的資料型別

   獲取表名         public bool GetTableName()         {             string sql = "show tables;";             MySqlCommand cmd = new MySqlCom

MySQL資料庫的儲存引擎

與其他資料庫軟體不同,MySQL資料庫提供了一種名為儲存引擎的概念。儲存引擎是MySQL資料庫管理系統的一個重要特徵,在具體開發中,為了提高MySQL資料庫管理系統的使用效率和靈活性,可以根據實際情況來選擇儲存引擎。簡單的說資料庫是用一張張表來儲存資訊的,那麼必然就會存在有的表簡單,有的

MySQL資料庫主鍵和外來鍵的操作

在MySQL資料庫中,一般會涉及到主鍵和外來鍵,在上一個表中添加了主鍵之後,通常在下一個表中要新增外來鍵,但是添加了外來鍵之後,在實體類和資料庫中在加上上一個表的主鍵會比較好,這樣兩個表關聯之後,在上一個表查詢完成之後,將查詢是出來的欄位拿著去下一個庫裡查詢,會比較好。 select * fro

Django使用mysql資料庫並使用原生sql語句操作

Django自身預設使用sqlite3這個輕量級的資料庫,但是當我們開發網站時,sqlite3就沒有mysql好,sqlite3適合一些手機上開發使用的資料庫。 準備的軟體 mysql資料庫,版本5.7及以上。 navicat,(可選的)。使用navicat主要是簡化我

mysql資料庫 IN 和 EXISTS 的誤區

       前言:最近在看 《高效能mysql第三版》 這本書,讀到子查詢優化那章,書中說mysql會將in子查詢改寫成exists查詢(書中基於的mysql版本是5.1.50和5.5),於是乎我又上網找了下資料,發現網上說法幾乎都是: &

解決查詢MySQL資料庫重複資料的問題

今天遇到一個問題,需求是查詢新採集資料中 重複資料 的條數。在採集完資料對資料進行去重查詢時sql結果不正確,因為有一部分sql是在業務程式碼中進行拼接的: “SELECT COUNT(*) FROM (“ + sql + “)_AA;” 之前的sql:SELECT 1 FROM TAB

mysql資料庫的函式

    函式表示對輸入引數值返回一個具有特定關係的值,在mysql中使用函式可以極大的提高使用者對資料庫的管理效率。Mysql中的函式主要有數學函式,字串函式,日期函式,時間函式以及條件判斷函式、系統資訊函式和加密函式等。 1、流程控制函式  &nbs

mysql資料庫的運算子

    運算子是mysql執行特定算術或邏輯操作的符號,mysql的運算子主要有算術運算子、比較運算子、邏輯運算子、位操作運算子 1、算術運算子 運算子 作用 + 加法運算

mysql資料庫的增刪改操作

1、插入資料          語法格式: INSERT INTO table_name (column_list) VALUES (value_list);     &n

Django框架mysql資料庫

1、連結資料庫 mysql,sqlserver,oracle... django預設只能連結關係型資料庫 1、安裝依賴的庫 可以使用的庫:1、pymysql 2、python_mysql(不穩定) 3、mysqlclient(配置

BCP工具的使用以及C++,SQL server資料庫呼叫命令列的方法

BCP工具使用: BCP是由SYBASE公司提供的,專門用於資料庫表一級資料備份的工具。 主要引數如下: 基本用法: 遠端地址1的資料庫表student 匯出到本地(遠端ip1(10.189.1.1) ): bcp run.dbo.student out "c:\student

python爬蟲系列(4.3-資料儲存到mysql資料庫)

一、如果你對mysql資料庫還不太熟悉   二、基本操作 1、在python中使用pymysql連線mysql 2、安裝包 pip3 install pymysql 3、定義一個建立資料庫的方法(或者手動、SQL語句建立資料庫) # 定義一個建立資料庫的函

Python 在mysql資料庫插入空值

Python中沒有NULL,只有None,操作mysql資料庫時,當某個值為空,不能使用下列插入語句 # 錯誤案例 a = None cursor = db.cursor() sql = "INSERT INTO 表名 VALUES ('%s')" % a cursor.execut