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 −
SintaksisBerikut 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 } ContohMisalkan kita telah membuat tabel yang berisi detail penjualan beserta detail kontak pelanggan seperti yang ditunjukkan di bawah ini − 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; 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
Tinggalkan BalasanAlamat 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). -) |