MySQL 9.0 發行說明
測試給定的表格是否存在,作為一般表格、TEMPORARY
表格或視圖。此程序會在 OUT
參數中傳回表格類型。如果同時存在具有給定名稱的暫時和永久表格,則會傳回 TEMPORARY
。
in_db VARCHAR(64)
:要檢查表格是否存在的資料庫名稱。in_table VARCHAR(64)
:要檢查是否存在的表格名稱。out_exists ENUM('', 'BASE TABLE', 'VIEW', 'TEMPORARY')
:傳回值。這是一個OUT
參數,因此它必須是一個可以儲存表格類型的變數。當程序傳回時,變數會具有下列其中一個值,以指示表格是否存在''
:表格名稱不存在,作為基本表格、TEMPORARY
表格或視圖。BASE TABLE
:表格名稱作為基本 (永久) 表格存在。VIEW
:表格名稱作為視圖存在。TEMPORARY
:表格名稱作為TEMPORARY
表格存在。
mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.01 sec)
mysql> USE db1;
Database changed
mysql> CREATE TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.03 sec)
mysql> CREATE TABLE t2 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.20 sec)
mysql> CREATE view v_t1 AS SELECT * FROM t1;
Query OK, 0 rows affected (0.02 sec)
mysql> CREATE TEMPORARY TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.00 sec)
mysql> CALL sys.table_exists('db1', 't1', @exists); SELECT @exists;
Query OK, 0 rows affected (0.01 sec)
+-----------+
| @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)