首页 > 其他分享 >动态生成表-判断表是否存在性能对比

动态生成表-判断表是否存在性能对比

时间:2024-11-05 10:47:09浏览次数:1  
标签:TABLES SHOW tableName echo 表不 动态 生成 对比 SCHEMA

SHOW TABLES LIKE 查询

直接使用 SHOW TABLES LIKE 'table_name' 来判断表是否存在。结果为空表示表不存在。

$tableName = 'your_table_name';
$res = Db::query("SHOW TABLES LIKE '{$tableName}'");
if (empty($res)) {
    echo "表不存在";
} else {
    echo "表已存在";
}

INFORMATION_SCHEMA 查询

查询 INFORMATION_SCHEMA.TABLES 表,该表存储了所有数据库的表信息。对于包含大量表的数据库,因为可以直接查询目标表的信息,比 SHOW TABLES LIKE 更有效。

$tableName = 'your_table_name';
$dbName = 'your_database_name';
$res = Db::query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{$dbName}' AND TABLE_NAME = '{$tableName}'");
if (empty($res)) {
    echo "表不存在";
} else {
    echo "表已存在";
}

Try-Catch 捕获异常

尝试对表执行一条简单的查询,如果表不存在会抛出异常,可以通过捕获异常来判断表是否存在。

$tableName = 'your_table_name';
try {
    Db::query("SELECT 1 FROM {$tableName} LIMIT 1");
    echo "表已存在";
} catch (Exception $e) {
    echo "表不存在";
}

总结

SHOW TABLES LIKE:简单直接,适合小型数据库。
INFORMATION_SCHEMA 查询:适合包含大量表的数据库,尤其是在需要批量判断多张表的情况下。
Try-Catch:更适合在查询操作中附带判断,不适合高频使用。

标签:TABLES,SHOW,tableName,echo,表不,动态,生成,对比,SCHEMA
From: https://www.cnblogs.com/aeolian/p/18527389

相关文章

  • LOG4J每天生成1个日志文件
    (1)org.apache.log4j.ConsoleAppender(控制台)(2)org.apache.log4j.FileAppender(文件)(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)(5)org.apache.log4j.WriterAppender(将......
  • 算法笔记:Day-09(初始动态规划)
    509.斐波那契数斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给定n,请计算F(n)。示例1:输入:n=2输出:1解释:F(2)=F(1)......
  • 我想让AI帮我生成一点不正经的东西……
    前言最近突发奇想:为啥我一定要不断得翻找各种壁纸呢?为啥就不能让AI给我生成一张专属的壁纸,上面有我喜欢的内容,这样,我这张壁纸就是独一无二的了!说干就干,小白默默打开了AI工具……点我跳转https://www.meijian.com/e-commerce?utm_source=dskolxbdnjs先来一张头像吧!看......
  • 动态内存分配
    一、为什么要有动态内存分配二、malloc和free栈区中的数据出了作用域就会销毁;而静态区中数据的生命周期与全局变量一致,出了作用域也不会被销毁,直至程序结束后才会销毁。malloc函数与free函数需要包含的头文件是<stdlib.h>①malloc②free#include<stdio.h>#includ......
  • 【c++篇】:深入剖析vector--模拟实现属于自己的c++动态数组
    ✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨✨个人主页:余辉zmh–CSDN博客✨文章所属专栏:c++篇–CSDN博客文章目录前言一.`vector`类的默认成员函数整体框架构造函数析构函数拷贝构造函数赋值运算符重载函数测试二.`vector`......
  • 逐点插入法生成维诺图
    最近想生成维诺图,在博客园发现了一篇对其生成过程描述得非常详细的帖子,链接在此感谢作者分享(维诺图(voronoi图)-kongbursi-博客园)。此篇随笔用于记录在使用逐点插入法生成维诺图过程中文章中没有提到的细节,以及一些遗留问题。(此次使用Unity引擎)一、编写代码中的细节......
  • 揭秘OpenAI推出革命性sCM模型,0.1秒内出图?50倍速AI图像生成
    sCM是什么?sCM(连续时间一致性模型,Simplifying,Stabilizing,andScalingContinuous-timeConsistencyModels)是OpenAI推出的一种新型生成模型。它基于扩散模型的原理进行改进,通过简化理论框架和优化采样过程,实现了图像生成速度和质量的显著提升。与传统的扩散模型相比,sCM在生......
  • HarmonyOS 开发实践——基于自定义注解和代码生成实现路由框架
    ......
  • ArkUI常用数据处理:掌握Map操作与动态数据管理
    在HarmonyOS应用开发中,ArkUI框架提供了丰富的数据处理能力,尤其是对于Map这类非线性容器的操作。本文将详细介绍ArkUI中Map的基本概念、操作方法,以及如何在实际开发中应用Map进行数据处理和动态数据管理。Map的重要性Map是非线性容器的一种,它提供了快速查找、插入和删除键值......
  • 主流AI Agent框架对比,让你轻松构建企业专属大模型!
    大模型的出现为AIAgent提供了足够聪明的“大脑”,并重新定义了AIAgent。各大科技公司正在投入巨额资金来创建AIAgent,包括OpenAI的SamAltman在内的许多专家都表示,AIAgent已成为下一个大热门方向。AIAgent是感知环境并采取行动以实现特定目标或目的的软件或系统。可以......