在 MySQL 中不使用"select from"来检查表是否存在?
mysqlmysqli database更新于 2024/1/24 13:08:00
我们可以借助 SHOW 命令来实现这一点。首先,我将借助 USE 命令使用我的数据库 −
mysql> USE business; Database changed
我们现在处于“business”数据库中。之后,我们可以检查此数据库有多少个表可用。查询如下 −
mysql> SHOW tables;
以下是输出 −
+------------------------+ | Tables_in_business | +------------------------+ | addcolumntable | | autoincrement | | autoincrementtable | | bookindexes | | chardemo | | clonestudent | | columnvaluenulldemo | | dateadddemo | | deletedemo | | deleterecord | | demo | | demo1 | | demoascii | | demoauto | | demobcrypt | | demoemptyandnull | | demoint | | demoonreplace | | demoschema | | distinctdemo | | duplicatebookindexes | | duplicatefound | | employeetable | | existsrowdemo | | findandreplacedemo | | firsttable | | foreigntable | | foreigntabledemo | | groupdemo | | groupdemo1 | | incasesensdemo | | int1demo | | intdemo | | latandlangdemo | | limitoffsetdemo | | milliseconddemo | | modifycolumnnamedemo | | modifydatatype | | moneydemo | | moviecollection | | mytable | | nonasciidemo | | nthrecorddemo | | nulldemo | | nullwithselect | | pasthistory | | presenthistory | | primarytable | | primarytable1 | | primarytabledemo | | rownumberdemo | | rowstranspose | | rowstransposedemo | | secondtable | | sequencedemo | | smallintdemo | | spacecolumn | | student | | tblfirst | | tblstudent | | tbluni | | textdemo | | texturl | | trailingandleadingdemo | | transcationdemo | | unsigneddemo | | updtable | | varchardemo | | varchardemo1 | | varchardemo2 | | varcharurl | | whereconditon | +------------------------+ 72 rows in set (0.03 sec)
下面显示了不使用 SELECT 语句的替代方法来检查表是否存在。
语法如下 −
SHOW tables like ‘yourTableName’;
现在,我正在应用上述查询来检查我的数据库"business"中的表是否存在。
查询如下 −
mysql> SHOW tables like 'tblstudent';
以下是输出 −
+---------------------------------+ | Tables_in_business (tblstudent) | +---------------------------------+ | tblstudent | +---------------------------------+ 1 row in set (0.00 sec)
看上面的输出,我的数据库中可以看到表‘tblstudent’。表不存在的情况如下 −
mysql> SHOW tables like 'sampledemo'; Empty set (0.00 sec)