mysql判断表不存在则创建

    技术2025-08-09  12

    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 库的话,也是一样的,只能查询到有权限的表。

    如果说一个用户的权限不是数据库层级以上的话就会导致结果不可信赖。

    Processed: 0.010, SQL: 9