• Dalam sintaks ini, Anda menentukan nama tabel yang ingin Anda kunci setelah
kata kunci LOCK TABLES. Selain itu, Anda menentukan jenis kunci, BACA atau
TULIS.
• MySQL memungkinkan Anda untuk mengunci beberapa tabel dengan
menentukan daftar nama tabel yang dipisahkan koma dengan tipe kunci yang
ingin Anda kunci setelah kata kunci LOCK TABLES:
UNLOCK TABLES;
READ LOCK
• Pada sesi pertama, pertama, sambungkan ke database dan gunakan fungsi
CONNECTION_ID() untuk mendapatkan id koneksi saat ini sebagai berikut:
SELECT CONNECTION_ID();
• Jadi setelah kunci READ diperoleh, Anda tidak dapat menulis data ke tabel dalam
sesi yang sama. Mohon shell/cmd pada sesi ini jangan diclose
• Mari kita periksa READ LOCK dari sesi yang berbeda.
READ LOCK
• Pertama, buka lagi xamppnya dan buka lagi shell/command linenya
• Sehingga kita punya 2 shell yang aktif (diartikan ada 2 sesi yang aktif)
READ LOCK
• Lakukan login mysql –u root pada sesi yang terakhir
• connect ke database dan cek connection id:
• Sekarang kita punya 2 sesi dengan 2 id koneksi yang beda yaitu 10 dan 11
• Tampilkan tabel messages
READ LOCK
• Kemudian, masukkan baris baru ke dalam tabel pesan:
INSERT INTO messages(message)
VALUES('Bye');
• Maka setelah ditekan enter akan ada kursor berkedip, tidak ada informasi query
ok. Ini artinya status querynya masih waiting, karena pada sesi 10, keadaan
tabelnya masih di lock
READ LOCK
• Kemudian, masukkan baris baru ke dalam tabel pesan:
INSERT INTO messages(message)
VALUES('Bye');
• Maka setelah ditekan enter akan ada kursor berkedip, tidak ada informasi query
ok. Ini artinya status querynya masih waiting, karena pada sesi 10, keadaan
tabelnya masih di lock
READ UNLOCK
• Terakhir, berikan perintah unlock table pada sesi pertama ( connection id 10)
• Cek pada sesi kedua (connection id 11) sekarang status waitingnya sudah
berakhir, dan status querynya menjadi query OK
WRITE LOCK
• Write Lock, adalah penguncian tabel yang menjadikan tabel tersebut hanya dapat
dilakukan manipulai proses read,insert, update, delete, truncate pada session nya
sendiri.
• Dan yang terjadi pada session lain session lain proses read juga akan tertunda,
dan untuk proses yang lain seperti insert, update, delete, truncate status nya
akan selalu waiting hingga dilakukan UNLOCK TABLES.
LOCK TABLES nama_tabel WRITE;
UNLOCK TABLES;
WRITE LOCK
• Kita coba pada table messages, lakukan perintah query pada sesi pertama
(connection id 10)
LOCK TABLE messages WRITE;