mysql判斷表不存在則創建

MYSQL判斷不存在時創建表或創建數據庫:

創建數據庫:

1

Create Database If Not Exists MyDB Character Set UTF8

創建數據表:

1

2

3

4

5

Create Table If Not Exists `world`.`NewTable`(

`ID` Bigint(8) unsigned Primary key Auto_Increment,

`Name` text,

`Birthday` DateTime

)Engine InnoDB

判斷mysql表是否存在,常用的方法如下:

1

2

SHOW TABLES LIKE '%tb_bp_d_case%';

select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA='dbname' and TABLE_NAME='tablename' ;

 

需要考慮的是權限問題

mysql 的授權分爲 5 層:全局層級,數據庫層級,表層級,列層級,子程序層級;

SHOW TABLES,並不在priv_type列表中,也就是說只要能連接到mysql上都可以執行。

如果用戶權限是 表層級或者是列層級 的,那麼 show tables; 只能看到有權限的表名。

如果 查詢 INFORMATION_SCHEMA 庫的話,也是一樣的,只能查詢到有權限的表。

如果說一個用戶的權限不是數據庫層級以上的話就會導致結果不可信賴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章