如何在Bash中获取MySQL Workbench风格的查询执行消息?
在Bash命令行获取MySQL查询受影响行数的方法
以下几种方法可以让你在命令行执行MySQL语句时,获取类似Workbench的受影响行数统计:
默认直接执行(无需额外参数)
只要不使用静默模式(-s/-ss),mysql客户端执行DML语句(INSERT/UPDATE/DELETE)后会自动输出统计信息。比如:mysql -u your_user -p'your_pass' your_db -e "UPDATE test_table SET status=1 WHERE id < 10;"执行后会返回:
Query OK, 5 row affected (0.02 sec)
Rows matched: 5 Changed: 5 Warnings: 0用
ROW_COUNT()精准获取数值
如果需要在脚本中捕获具体行数(比如用于日志或判断逻辑),可以在执行DML语句后调用ROW_COUNT():mysql -u your_user -p'your_pass' your_db -e "UPDATE test_table SET status=1 WHERE id < 10; SELECT ROW_COUNT() AS affected_rows;"输出会包含明确的行数数值,方便后续处理。
取消静默模式/增加冗余输出
如果你之前用了-s(静默)选项导致没看到统计,直接去掉该选项即可。如果需要更详细的执行信息,可以使用-vv或-vvv参数(比单独-v输出更完整):mysql -vv -u your_user -p'your_pass' your_db -e "UPDATE test_table SET status=1 WHERE id < 10;"执行SQL文件时保留统计
批量执行SQL文件时,默认也会输出每条DML的受影响行数,不要加-f(强制忽略错误)或静默选项即可:mysql -u your_user -p'your_pass' your_db < update_script.sql
内容的提问来源于stack exchange,提问作者msbeast
相关产品推荐
相关产品推荐

