检查表是否存在


Check whether the table exists or not

$qry    = "SELECT * FROM nl_lang_var";
    if($qry === false)
        {
             $sql = "INSERT INTO  nl_lang_var set value='$value'        WHERE        name='$var' and langid=$langid"; }
            else {
 echo "already existed"; }

我想知道该表nl_lang_var是否存在。

如果它不存在,则必须插入,否则提供消息。

有两种可能的解决方案。

解决方案 1

SELECT 1 FROM nl_lang_var WHERE 1 LIMIT 1;

如果上述查询未返回错误,则表存在。

解决方案 2

SELECT *
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'DB_NAME' AND TABLE_NAME = 'nl_lang_var';
如果

这有效,我还没有尝试过,但我希望你能得到一些想法

SELECT count(table_name) 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name = 'nl_lang_var'

尝试此查询

SHOW TABLES LIKE 'nl_lang_var';

SHOW TABLE STATUS LIKE 'nl_lang_var';

展示表比information_schema更胖

但两者都取决于连接用户的权限

裁判