You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量操作带指定前缀的表数据并排除某张特定表

实现方案

首先注意你现有语句里有两处可优化点:

  1. 关键字拼写错误:DELET 应为 DELETE
  2. LIKE匹配规则问题:SQL中_是通配符,代表匹配任意1个字符,你当前写的LIKE 'One_Table_'仅能匹配前缀后只有1个字符的表,无法匹配One_Table_A1、One_Table_B2这类名称更长的表。如果要匹配所有以One_Table_开头的表,需要对下划线转义,通用写法为LIKE 'One\_Table\_%' ESCAPE '\',SQL Server环境也可以用方括号包裹通配符,写成LIKE 'One[_]Table[_]%'

排除指定表的两种方案

  • 方案1:单表排除直接加不等判断
    最适合你当前只需要排除One_Table_B单个表的场景,直接在WHERE条件后追加不等于判断即可,完整语句如下:

    SELECT 'DELETE FROM '+TABLE_NAME +' WHERE 1=1' -- 补1=1方便后续自定义过滤条件
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME LIKE 'One\_Table\_%' ESCAPE '\'
    AND TABLE_NAME <> 'One_Table_B';
    
  • 方案2:多表排除用NOT IN
    如果后续需要排除多个表,用NOT IN扩展性更好,修改更方便:

    SELECT 'DELETE FROM '+TABLE_NAME +' WHERE 1=1'
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME LIKE 'One\_Table\_%' ESCAPE '\'
    AND TABLE_NAME NOT IN ('One_Table_B', '其他需要排除的表名');
    

小提示:生成删除语句后建议先核对输出的表名是否符合预期,确认无误后再执行实际删除操作,避免误删数据。

内容的提问来源于stack exchange,提问作者lilaaffe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:45:03