ilustrasi
misalkan terdapat tabel temp dengan spefikasi berikut
temp
*idtemp int(10) Primary Key Auto Increment
*name varchar (30)
contoh kasus
SI A ingin mengisi table temp dengan idtemp yang urut 1-100000 bersamaan dengan itu SI B ingin mengisi beberapa record tanpa menentukan nilai idtemp. dengan kasus seperti ini besar kemungkinannya akan terjadi tabrakan karena SI A mengisi idtemp secara manual sedangkan SI B mengisi idtemp secara otomatis.
SI A bisa menggunakan fungsi lock tables;
SI A SESSION
mysql>lock table temp write
mysql>insert into (idtemp,name) values(1,"a");
mysql>insert into (idtemp,name) values(2,"a");
mysql>insert into (idtemp,name) values(3,"a");
.
. # proses mengisi sampai 100000
.
mysql>insert into (idtemp,name) values(100000,"a");
mysql>unlock tables;
Misalkan pada ketika SI B menambahkan data sebelum SI A selesai mengeksekusi query maka perintah query SI B akan di tunda sampai SI A selesai
SI B SESSION
mysql>insert into (name) values("xy"); <--- akan di pending sampai SI A selesai
Pada lock table Parameternya bisa menggunakan WRITE atau menggunakan READ Perbedaanya ketika menggunakan WRITE si B tidak bisa men SELECT dan tidak bisa INSERT,UPDATE,DELETE sebelum si A selesai. sedangkan ketika menggunakan READ si B bisa men SELECT meskipun si A belum selesai tapi si B tetap tidak bisa men INSERT,UPDATE,DELETE sebelum si A Selesai.
contoh write :
mysql>lock table temp write
contoh read :
mysql>lock table temp read
Home
belajar lock table
belajar mysql
belajar unlock table
Komputer
lock table
Mysql
unlock table
Belajar Lock Table and Unlock Tables Pada Mysql
1 komentar:
thanks sudah berbagi ilmunya yah.. :D
Post a Comment