AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 343392
Accepted
Avinash Pawar
Avinash Pawar
Asked: 2024-11-04 01:36:28 +0800 CST2024-11-04 01:36:28 +0800 CST 2024-11-04 01:36:28 +0800 CST

capturar contagem de linhas excluídas em uma variável da tabela mysql usando script bash

  • 772

Estou tentando capturar o número de linhas excluídas da tabela mysql de um script bash usando --executeoption, e parece que não está funcionando. Eu li algumas perguntas onde menciona o uso -vvde options, funciona, mas não como esperado. Eu usei várias combinações de -vvv --silente --skip-column-namescom o comando mysql e awk e sed também, mas nada parece funcionar.

O cliente MySQL émysql Ver 8.0.39 for Linux on aarch64 (MySQL Community Server - GPL)

https://stackoverflow.com/questions/2628310/how-to-get-number-of-rows-deleted-from-mysql-in-shell-script

https://stackoverflow.com/questions/1083866/how-to-get-number-of-rows-affected-while-executing-mysql-query-from-bash

Como você pode gerar resultados de consulta UPDATE / INSERT ao usar MySQL -e,--execute?

Aqui está o código

deleted=$(mysql --login-path=lp1 --init-command="SET SQL_LOG_BIN = 0" -vv --silent --skip-column-names db -e "delete from table1 where column1 date_format('2022-04-01 00:00:00','%Y-%m-%d 00:00:00') and date_format('2023-03-31 23:59:59','%Y-%m-%d 23:59:59') order by column1 limit 20;")

echo ${deleted}

A declaração exclui certas linhas, mas imprime uma saída como esta

-------------- delete from table1 where column1 between date_format('2022-04-01 00:00:00','%Y-%m-%d 00:00:00') and date_format('2023-03-31 23:59:59','%Y-%m-%d 23:59:59') order by column1 limit 20 -------------- Query OK, 20 rows affected --------------  1 row in set Bye

Se eu adicionar mais uma linha para obter o row_count, ele me dará -1

mysql --login-path=${LP_wallet_0} -e "select row_count()"

Mesmo se eu tentar row_count() na mesma consulta de exclusão, ele apenas anexa esta linhaselect row_count() -------------- 2 1 row in set Bye

Tentei diferentes combinações de --vv --silent --skip-column-namese awke sedtambém, mas não consegui fazer a contagem.

mysql
  • 1 1 respostas
  • 15 Views

1 respostas

  • Voted
  1. Best Answer
    Bill Karwin
    2024-11-04T05:29:15+08:002024-11-04T05:29:15+08:00

    Você não precisa -vvse você consultar ROW_COUNT();.

    Aqui está um exemplo que acabei de testar. Tenho uma tabela mytableno meu testesquema, a tabela tinha 6 linhas.

    mysql -s -N -e "delete from mytable; select row_count()" test
    

    Saída:

    6
    

    Usei -spara silêncio, -Npara pular nomes de colunas, e fiz questão de fazer isso select row_count() na mesma sessão.

    Assim, ele produz apenas 6, indicando o número de linhas afetadas. Como a saída é simplesmente esse resultado, é fácil capturar sem precisar fazer nenhuma análise com sedou awk.

    Se você tentar consultar row_count()em um comando mysql subsequente, não funcionará, porque ele só relata o número de linhas afetadas pela instrução SQL anterior da mesma sessão.

    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve