10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

28.4.4.26 Table_exists()程序

测试给定表是否作为常规表,a暂时的表或视图。过程返回表类型出去范围。如果临时和永久表都存在给定的名称,暂时的被退回。

参数
  • IN_DB VARCHAR(64):要检查表是否存在的数据库的名称。

  • In_table varchar(64):要检查存在的表的名称。

  • Out_Exists枚举('','基本表','查看','临时'):返回值。这是一出去参数,因此它必须是可以存储表类型的变量。过程返回时,变量具有以下值之一,以指示表是否存在:

    • '':表名不作为基表存在,暂时的表格或视图。

    • 基础表:表名作为基础(永久性)表。

    • 看法:表名作为视图存在。

    • 暂时的:表名存在为暂时的桌子。

例子
MySQL>创建数据库DB1;查询OK,1行受影响(0.01秒)MySQL>使用DB1;数据库已更改MySQL>创建表T1(ID INT主键);查询OK,0行受影响(0.03秒)MySQL> Create Table T2(ID INT主键);查询OK,0行受影响(0.20秒)MySQL>创建视图v_t1作为从t1中选择*;查询OK,0行受影响(0.02秒)MySQL>创建临时表T1(ID INT主键);查询确定,0行受影响(0.00秒)MySQL>调用sys.table_exists('db1','t1',@exists);选择@Exists;查询OK,0行受影响(0.01秒)+ ----------- + |@Exists | +-----------+ | TEMPORARY | +-----------+ 1 row in set (0.00 sec) mysql> CALL sys.table_exists('db1', 't2', @exists); SELECT @exists; Query OK, 0 rows affected (0.02 sec) +------------+ | @exists | +------------+ | BASE TABLE | +------------+ 1 row in set (0.00 sec) mysql> CALL sys.table_exists('db1', 'v_t1', @exists); SELECT @exists; Query OK, 0 rows affected (0.02 sec) +---------+ | @exists | +---------+ | VIEW | +---------+ 1 row in set (0.00 sec) mysql> CALL sys.table_exists('db1', 't3', @exists); SELECT @exists; Query OK, 0 rows affected (0.00 sec) +---------+ | @exists | +---------+ | | +---------+ 1 row in set (0.00 sec)