Funções Informativas

Funções Informativas
Informativas

O MySQL tem várias funções informativas que podem nos ajudar no desenvolvimento de aplicações ou procedures. Neste artigo descreverei funções importantes para sabermos em qual banco de dados estamos conectados, qual nossa thread (conexão), quantas linhas foram lidas, quantas linhas foram afetadas por determinado comando update/delete, capturar o último código atribuído a uma coluna auto_increment. Vamos ver algumas delas:

– DATABASE(): retornará o banco de dados ao qual a conexão está ligada:

world-> SELECT database();

+—————+

| database() |

+—————+

| world           |

+—————+

1 row in set (0.00 sec)

– CONNECTION_ID(): retornará o número de sua thread, ou se preferir: o número de sua sessão e/ou conexão ao banco de dados:

world-> select connection_id();

+———————+

| connection_id() |

+———————+

|                           2 |

+———————+

1 row in set (0.00 sec)

– LAST_INSERT_ID(): Especialmente útil quando temos tabelas com AUTO INCREMENT, e, após uma nova inserção precisamos saber qual foi o último número incrementado. Para poder explicar melhor, vou criar uma tabela e fazer algumas inserções. Lembre-se, só funciona com AUTO INCREMENT:

Informativas

world-> create table telefones

    -> (

    ->  codigo tinyint not null auto_increment,

    ->  nome varchar(25),

    ->  fone int,

    ->  primary key(codigo)

    -> );

Query OK, 0 rows affected (0.06 sec)

world-> insert into telefones values (null, ‘Andre Barros’, 88880102);

Query OK, 1 row affected (0.00 sec)

world-> insert into telefones values (null, ‘Olivia Barros’, 88880103);

Query OK, 1 row affected (0.00 sec)

world-> insert into telefones values (null, ‘Juju Barros’, 88880104);

Query OK, 1 row affected (0.00 sec)

world-> select last_insert_id();

+——————–+

| last_insert_id() |

+——————–+

|                         3 |

+——————–+

1 row in set (0.02 sec)

world-> select * from telefones;

+———+——————–+————–+

| codigo | nome                | fone           |

+———+——————–+————–+

|           1 | Andre Barros  | 88880102 |

|           2 | Olivia Barros   | 88880103 |

|           3 | Juju Barros     | 88880104 |

+———+——————–+————–+

3 rows in set (0.00 sec)

Notem, que o LAST_INSERT_ID() retorna sempre o último número auto incrementado, do último insert da sessão corrente. Portanto, se vários inserts forem enviados para o servidor, e é necessário saber qual o “código” que ficou atribuído a cada linha é necessário um SELECT LAST_INSERT_ID() para cada insert.

– FOUND_ROWS(): Esta função informa o número de linhas retornados por um determinado SELECT. É especialmente útil para evitarmos, por exemplo, de dar um SELECT COUNT(*) para descobrir quantas linhas são retornadas. Aproveitando o SELECT * FROM telefones da função acima:

Informativas

world-> select found_rows();

+——————+

| found_rows() |

+——————+

|                       3 |

+——————+

1 row in set (0.00 sec)

Assim como o LAST_INSERT_ID(), o FOUND_ROWS() nos retorna a quantidade de linhas do último SELECT executado pela sessão corrente.

– ROW_COUNT(): Retorna a quantidade de linhas foram afetadas, e somente estas. Funciona tanto com update ou delete.

world-> update telefones SET fone = 65110001 where codigo = 3;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

world-> select row_count();

+—————-+

| row_count() |

+—————-+

|                    1 |

+—————-+

1 row in set (0.00 sec)

world-> update telefones SET fone = 65110001;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 3  Changed: 0  Warnings: 0

world-> select row_count();

+—————-+

| row_count() |

+—————-+

|                    0 |

+—————-+

1 row in set (0.00 sec)

world-> delete from telefones where codigo >= 2;

Query OK, 2 rows affected (0.02 sec)

world-> select row_count();

+—————-+

| row_count() |

+—————-+

|                    2 |

+—————-+

1 row in set (0.00 sec)

Até mais!

Agende uma reunião aqui

Visite nosso Blog

Saiba mais sobre bancos de dados

Aprenda sobre monitoramento com ferramentas avançadas

Informativas

Tem dúvidas sobre nossos serviços? Acesse nosso FAQ

Quer ver como ajudamos outras empresas? Confira o que nossos clientes dizem nesses depoimentos!

Conheça a História da HTI Tecnologia

Compartilhar: