Muka menggunakan mysql no lock tables

bergambar
misalkan terdapat tabel temp dengan spesifikasi berikut
suhu
*tempid int(10) Peningkatan Otomatis Kunci Utama
*nama 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;
YA UNTUK SESI
mysql>kunci tabel temp tulis
mysql>insert into (tempid,name) values(1,"a");
mysql>insert into (tempid,name) values(2,"a");
mysql>masukkan ke dalam (tempid,name) values(3,"a");




Show
.
# proses isi sampai 100000
.
mysql>insert into (tempid,name) values(100000,"a");
mysql> buka kunci tabel;

Misalkan ketika SI B menambahkan data sebelum SI A selesai mengeksekusi query maka perintah query SI B akan di tunda sampai SI A selesai
SESI YA B
mysql>masukkan ke dalam (nama) nilai ("xy");

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 tulis
mysql>kunci tabel temp tulis
contoh read
mysql>mengunci tabel temp baca

url dari. http. //roemly. blogspot. bersama. id/2012/09/belajar-lock-table-and-unlock-tables. html

Anda dapat membatasi akses ke catatan tabel di MYSQL dengan menguncinya. Kunci ini digunakan untuk sesi lain dari memodifikasi tabel di sesi saat ini

Sesi MySQL dapat memperoleh atau melepaskan kunci pada tabel hanya untuk dirinya sendiri. Untuk mengunci tabel menggunakan Pernyataan MySQL LOCK TABLES Anda harus memiliki hak istimewa TABLE LOCK dan SELECT

Kunci ini digunakan untuk memecahkan masalah konkurensi. Ada dua jenis kunci tabel MYSQL −

  • KUNCI BACA - Jika Anda menerapkan kunci ini pada tabel, operasi tulis di atasnya dibatasi. yo. e. , hanya sesi yang menahan kunci yang dapat menulis ke tabel ini

  • KUNCI TULIS - Kunci ini memungkinkan membatasi sesi (yang tidak memiliki kunci) dari melakukan operasi baca dan tulis di atas meja

Sintaksis

Berikut ini adalah sintaks Pernyataan MySQL LOCK TABLES −

LOCK TABLES
   tbl_name [[AS] alias] lock_type
   [, tbl_name [[AS] alias] lock_type] ...
lock_type: {
      READ [LOCAL]
   | [LOW_PRIORITY] WRITE
}

Contoh

Misalkan kita telah membuat tabel yang berisi detail penjualan beserta detail kontak pelanggan seperti yang ditunjukkan di bawah ini −

________satu_______

Sekarang, mari masukkan 2 record ke dalam tabel yang dibuat di atas menggunakan pernyataan INSERT sebagai −

mysql> insert into SalesDetails values(1, 'Key-Board', 'Raja', DATE('2019-09-01'), TIME('11:00:00'), 7000, 'Hyderabad', 25, '9000012345', 'Hyderabad – Madhapur', '[email protected]');
Query OK, 1 row affected (0.84 sec)
mysql> insert into SalesDetails values(2, 'Mobile', 'Vanaja', DATE('2019-03-01'), TIME('10:10:52'), 9000, 'Chennai', 30, '90000123654', 'Chennai- TNagar', '[email protected]');
Query OK, 1 row affected (1.84 sec)

Jika kita menginginkan tabel lain hanya dengan detail kontak pelanggan, buat tabel sebagai −

mysql> CREATE TABLE CustContactDetails (
   ID INT,
   Name VARCHAR(255),
   Age INT,
   Phone BIGINT,
   Address VARCHAR(255),
   Email VARCHAR(50)
);

Kueri berikut menyisipkan rekaman ke dalam tabel CustContactDetails menggunakan pernyataan INSERT INTO SELECT. Di sini, kami mencoba memasukkan catatan dari tabel SALES_DETAILS ke tabel CustContactDetails

Di sini sebelum transfer, kami memperoleh kunci tulis pada tabel tempat kami memasukkan catatan dan memperoleh kunci baca pada tabel tempat kami memasukkan catatan. Akhirnya, setelah transfer kami merilis rekaman

Jika anda menemukan error seperti ini “mysqldump. Punya kesalahan. 1066. Bukan tabel/alias unik. foo when using LOCK TABLES” ketika melakukan backup database menggunakan mysqldump maka permasalahannya adalah tabel anda mempunyai duplikat dimana salah satunya menggunakan huruf besar /kapital

kontur

mysql> tampilkan tabel;
+———————————–+
tables_in_power
+———————————–+
message_seq
user_seq
message_seq
user_seq
+———————————–+

Dapat anda perhatikan dari 4 tabel diatas 2 diantaranya sama dan yang berbeda adalah huruf besar dan kecilnya

Untuk menyelesaikan masalah ini anda harus menghapus salah satu tablenya langsung melalui folder datanya. misalnya jika anda menggunakan centos linux folder data mysql terdapat pada

/var/lib/mysql/nama-database/

Nah hapus nama tablenya

Setelah anda menghapus lakukan dump ulang

Solusi supaya tidak terjadi masalah seperti ini lagi menambahkan setting di my. cnf letakkan tepat dibawah [mysqld]

lower_case_table_names=1

selamat mencoba

Tidak ada postingan terkait

  • PHP Menaikkan Ukuran Upload File sebesar 2MB
  • Ubuntu Otomatis Mulai Squid & Iptables Setiap Booting

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Kolom yang wajib diisi ditandai *

Nama *

Email *

situs web

× 3 = 24

komentar

Pertanyaan Keamanan

Apa itu 3 + 7?

Harap biarkan kedua bidang ini apa adanya.

PENTING. Untuk dapat melanjutkan, Anda perlu menyelesaikan matematika sederhana berikut (agar kami tahu bahwa Anda adalah manusia). -)