In MySQL, un blocco si riferisce a una flag speciale incluso in una tabella di database. Un blocco impedisce ad altre sessioni di accedere alla stessa tabella contemporaneamente. Una sessione MySQL può connettersi e accedere o rilasciare il blocco per se stessa. Ciò significa che una sessione non può acquisire o rilasciare blocchi per altre sessioni. Una volta rilasciato un blocco, ulteriori sessioni possono accedere e modificare la tabella.
Questo articolo esplorerà i fondamenti delle serrature in mysql e come possiamo crearne uno e acquisire e rilasciare un blocco in una tabella del database.
Crea tabella di esempio
Prima di procedere con la creazione e l'acquisizione di blocchi in MySQL, creiamo una tabella di esempio che possiamo usare per illustrare questo codice.
Frammento di codice:
Come creare blocco in mysql
Una volta creata la tabella di esempio e pronti, possiamo procedere e discutere su come creare un blocco in una tabella MySQL.
Come hai indovinato, per creare un blocco in mysql, utilizziamo l'istruzione tabelle di blocco.
La sintassi è come mostrato di seguito:
Lock Tables Table_name [Leggi | SCRIVERE]
Nell'istruzione sopra, iniziamo con la parola chiave delle tabelle di blocco seguita dal nome della tabella che desideriamo bloccare.
Quindi specifichiamo il tipo di blocco che desideriamo creare per la tabella impostata. Tipi di blocco supportati:
Crea il blocco di lettura
Possiamo creare un blocco di lettura nella tabella che abbiamo creato in precedenza eseguendo il codice come mostrato:
Gli utenti della tabella di blocco leggono;
Questo dovrebbe creare un blocco di lettura sulla tabella che consente solo operazioni di lettura. Possiamo verificarlo inserendo un record nella tabella.
INSERIRE
utenti (nome utente, e -mail, paese)
VALORI
('Linuxhint', '[email protected] ',' noi ');
Poiché la tabella è bloccata con un blocco di lettura, MySQL restituirà un errore come mostrato:
Per inserire nella tabella, è possibile rilasciare il blocco utilizzando l'istruzione Unlock.
Sbloccare i tavoli;
Ciò dovrebbe sbloccare i tavoli e consentire a te e ad altre sessioni di eseguire le operazioni target.
Controlla mysql se il nome di blocco è gratuito
Fortunatamente, MySQL ci fornisce una semplice funzione che ci consente di determinare se un blocco denominato è gratuito o no.
La sintassi della funzione è come mostrato di seguito:
Is_free_lock (str)
Dove STR si riferisce al nome della serratura, si desidera verificare se è gratuito. Se gratuito, la funzione restituisce 1. Quindi nessuna sessione sta usando il blocco. Altrimenti, la funzione restituisce 0, il che significa che il blocco è in uso.
Un'altra funzione che devi sapere è la funzione is_used_lock (). La sintassi è come mostrata:
Is_ususe_lock (STR)
La funzione determina se il blocco dichiarato è gratuito. Se vero, restituisce l'identificatore della connessione della sessione. Altro, restituisce null.
Conclusione
Questo articolo ha esplorato come lavorare con le serrature nel database MySQL. Abbiamo discusso di come è possibile creare un blocco per una tabella specifica, come sbloccare un tavolo e come verificare se un blocco è gratuito o no.