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

使用PowerShell循环提取MySQL文件指定表内容并写入新SQL文件

MySQL导出SQL文件批量提取指定表脚本(PowerShell版)

改造后完整可用脚本

# 定义需要提取的表名数组
$tableList = @("address", "client")
$sourceFile = "file.sql"
$targetFile = "new_file.sql"

# 提前删除已存在的目标文件,避免旧内容干扰
if (Test-Path $targetFile) {
    Remove-Item $targetFile -Force
}

# 循环遍历每张待提取的表
foreach ($table in $tableList) {
    $write = $false
    # 动态拼接当前表的起始匹配字符串
    $startMatch = "-- Table structure for table ``$table``"
    $tableContent = switch -CaseSensitive -File $sourceFile {
        $startMatch { $write = $true; $_ }
        'UNLOCK TABLES;' { 
            if ($write) { 
                $_
                $write = $false
                break
            } 
        }
        default { if ($write) { $_ } }
    }
    # 将当前表内容追加到目标文件,同时末尾加换行分隔不同表
    $tableContent | Add-Content -Path $targetFile -Encoding UTF8
    Add-Content -Path $targetFile -Value "`r`n" -Encoding UTF8
}

核心改造点说明

  • 直接使用PowerShell原生数组定义待提取表名,语法更简洁,不需要调用ArrayList
  • 改用foreach遍历表名,不需要手动维护索引,避免索引越界、下标起始值错误问题
  • 起始匹配字符串根据当前遍历的表名动态生成,适配所有待提取表的匹配规则
  • 统一使用Add-Content追加写入,提前删除旧目标文件避免残留内容,每轮提取完成后自动追加空行分隔不同表的SQL内容
  • 新增编码指定为UTF8,避免中文乱码问题,可根据实际导出文件编码调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:36:04