MySQL Verifique se o bloqueio é gratuito

MySQL Verifique se o bloqueio é gratuito

No MySQL, um bloqueio refere -se a uma bandeira especial que está incluída em uma tabela de banco de dados. Uma trava impede que outras sessões acessem a mesma tabela simultaneamente. Uma sessão do MySQL pode se conectar e acessar ou liberar o bloqueio para si mesmo. Isso significa que uma sessão não pode adquirir ou liberar bloqueios para outras sessões. Depois que um bloqueio é liberado, sessões adicionais podem acessar e modificar a tabela.

Este artigo explorará os fundamentos dos bloqueios no MySQL e como podemos criar um e adquirir e liberar um bloqueio para uma tabela de banco de dados.

Crie tabela de amostra

Antes de prosseguir com a criação e aquisição de bloqueios no MySQL, vamos criar uma tabela de amostra que podemos usar para ilustrar este código.

Fragmento de código:

Como criar bloqueio em mysql

Depois de criarmos a tabela de amostra e pronta para ir, podemos prosseguir e discutir como criar um bloqueio em uma tabela mysql.

Como você adivinhou, para criar um bloqueio no MySQL, usamos a declaração de tabelas de trava.

A sintaxe é como mostrado abaixo:

Tables de bloqueio Table_name [Leia | ESCREVER]

Na declaração acima, começamos com a palavra -chave das tabelas de trava seguida pelo nome da tabela que desejamos travar.

Em seguida, especificamos o tipo de bloqueio que desejamos criar para a tabela de conjuntos. Tipos de bloqueio suportados:

  1. Leia [Local] -A sessão pode ler a tabela, mas não escrever para ela.
    a. Este tipo de bloqueio pode ser usado por várias sessões simultaneamente, pois nenhuma alteração é aplicada à tabela.
    b. Da mesma forma, outras sessões sem bloqueio de leitura também podem ler na tabela.
  2. [Baixa prioridade] Escreva - Este tipo de bloqueio permite que a sessão leia e escreva na tabela.
    a. Ao contrário do bloqueio de leitura, apenas um único cliente pode adquirir um bloqueio de gravação em uma determinada tabela.
    b. O MySQL também bloqueará quaisquer solicitações de bloqueio por outras sessões enquanto esse bloqueio está sendo mantido.

Crie o bloqueio de leitura

Podemos criar um bloqueio de leitura para a tabela que criamos anteriormente executando o código como mostrado:

Os usuários da tabela de bloqueio leem;

Isso deve criar um bloqueio de leitura para a tabela, permitindo apenas operações de leitura. Podemos verificar isso inserindo um registro na tabela.

INSIRA DENTRO DE
Usuários (nome de usuário, e -mail, país)
Valores
('Linuxhint', '[email protected] ',' nós ');

Como a tabela está bloqueada com um bloqueio de leitura, o MySQL retornará um erro como mostrado:

Para inserir na tabela, você pode liberar o bloqueio usando a instrução de desbloqueio.

Desbloquear tabelas;

Isso deve desbloquear as tabelas e permitir que você e outras sessões executem as operações de destino.

MySQL Verifique se o bloqueio nomeado é gratuito

Felizmente, o MySQL nos fornece uma função simples que nos permite determinar se um bloqueio nomeado é livre ou não.

A sintaxe da função é como mostrado abaixo:

Is_free_lock (str)

Onde STR refere -se ao nome da fechadura, você deseja verificar se é grátis. Se livre, a função retorna 1. Portanto, nenhuma sessão está usando o bloqueio. Caso contrário, a função retorna 0, o que significa que o bloqueio está em uso.

Outra função que você precisa saber é a função is_used_lock (). A sintaxe é como mostrado:

Is_used_lock (str)

A função determina se a trava declarada é gratuita. Se verdadeiro, o identificador de conexão da sessão de retorno. Caso contrário, retorne nulo.

Conclusão

Este artigo explorou como trabalhar com bloqueios no banco de dados MySQL. Discutimos como você poderia criar um bloqueio para uma tabela específica, como desbloquear uma tabela e como verificar se um bloqueio é livre ou não.