Rumah > pangkalan data > Oracle > teks badan

Apakah kegunaan untuk kemas kini dalam oracle

WBOY
Lepaskan: 2022-03-02 12:06:33
asal
14828 orang telah melayarinya

Dalam Oracle, "untuk kemas kini" ialah kunci peringkat baris, yang digunakan untuk menggunakan kunci peringkat baris pada baris Pengguna yang dikunci boleh membuat pertanyaan dan mengemas kini baris data, tetapi pengguna lain tidak boleh membuat pertanyaan dan kemas kini. Sintaks untuk baris terkunci ialah "PILIH * DARI nama jadual DI MANA nama lajur UNTUK KEMASKINI;".

Apakah kegunaan untuk kemas kini dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.

Apakah kegunaan untuk kemas kini dalam Oracle Lock, setelah pengguna menggunakan kunci peringkat baris pada baris, pengguna boleh bertanya dan mengemas kini baris data yang dikunci, manakala pengguna lain hanya boleh bertanya tetapi tidak kemas kini baris data yang dikunci. Jika pengguna lain ingin mengemas kini baris data dalam jadual, mereka juga mesti menggunakan kunci peringkat baris pada jadual. Walaupun berbilang pengguna menggunakan kemas kini dikongsi pada jadual, dua transaksi tidak dibenarkan untuk mengemas kini jadual pada masa yang sama Apabila jadual sebenarnya dikemas kini, jadual dikunci secara eksklusif sehingga transaksi dilakukan atau dipulihkan. Kunci baris sentiasa kunci eksklusif.

Kunci kemas kini yang dikongsi hanya akan dikeluarkan apabila salah satu daripada keadaan berikut berlaku: 1 Laksanakan pernyataan komit (COMMIT)

Keluar daripada pangkalan data (LOG MATI)

3 Program berhenti berjalan

2 Konsep dan penggunaan

Biasanya, pernyataan pilih tidak akan mengunci data dan menghalangnya. impak. Operasi DML dan DDL yang lain. Pada masa yang sama, dengan sokongan mekanisme bacaan konsisten berbilang versi, pernyataan pilihan tidak akan disekat oleh jenis pernyataan lain.

Pernyataan pilih … untuk kemas kini ialah pernyataan penguncian manual yang sering kami gunakan. Apabila anda melaksanakan pilih ... untuk kemas kini dalam pangkalan data, anda akan mendapati bahawa jadual atau data baris tertentu dalam pangkalan data akan dikunci Dalam mysql, jika syarat pertanyaan mengandungi kunci utama, data baris akan dikunci tidak, meja akan dikunci. Memandangkan InnoDB lalai kepada Row-Level Lock, MySQL akan melaksanakan kunci Row (hanya mengunci data yang dipilih) hanya jika kunci utama "secara jelas" ditentukan Jika tidak, MySQL akan melaksanakan Kunci Jadual ( Kunci keseluruhan data bentuk).

Contohnya: Katakan terdapat pengguna jadual dengan dua lajur, id dan nama, dan id ialah kunci utama.

Contoh 1: (Nyatakan kunci primer secara eksplisit, dan data itu wujud, kunci baris)

Contoh 2: (Nyatakan kunci primer secara eksplisit, tetapi data tidak wujud , tiada kunci)

Contoh 3: (Kunci primer tidak jelas, kunci meja)

SELECT * FROM user WHERE id=3 FOR UPDATE;
SELECT * FROM user WHERE id=3 and name='Tom' FOR UPDATE;
Salin selepas log masuk

Contoh 4: (Tiada kunci utama, kunci meja)

SELECT * FROM user WHERE id=0 FOR UPDATE;
Salin selepas log masuk

Nota:

SELECT * FROM user WHERE id<>3 FOR UPDATE;
SELECT * FROM user WHERE id LIKE &#39;%3%&#39; FOR UPDATE;
Salin selepas log masuk
1 FOR UPDATE hanya terpakai kepada InnoDB dan mesti berada dalam modul pemprosesan transaksi (BEGIN/COMMIT) untuk berkuat kuasa.

2. Untuk menguji situasi penguncian, anda boleh menggunakan Mod Perintah MySQL untuk membuka dua tetingkap untuk ujian.
SELECT * FROM user WHERE name=&#39;Tom&#39; FOR UPDATE;
Salin selepas log masuk

3. Myisam hanya menyokong kunci peringkat jadual, manakala InnerDB menyokong kunci peringkat baris Data dengan kunci tambahan (kunci peringkat baris/kunci peringkat meja) tidak boleh dikunci oleh transaksi lain, begitu juga kunci tersebut. diubahsuai oleh transaksi lain. Apabila ia adalah kunci peringkat jadual, jadual akan dikunci tanpa mengira sama ada rekod itu ditanya.

3. Bilakah anda perlu menggunakan untuk kemas kini?

Dengan pernyataan untuk kemas kini, kami boleh melaksanakan operasi penguncian dan perlindungan data secara manual di peringkat aplikasi. Apabila anda memerlukan data peringkat perniagaan eksklusif, anda boleh mempertimbangkan untuk menggunakan untuk kemas kini.

Dalam senario, seperti tempahan tiket kereta api, tiket dipaparkan pada skrin, tetapi apabila tiket itu benar-benar dikeluarkan, adalah perlu untuk mengesahkan semula bahawa data tidak diubah suai oleh pelanggan lain. Oleh itu, semasa proses pengesahan ini, anda boleh gunakan untuk kemas kini.

4 untuk mengemas kini kunci pesimis

Kunci pesimis: sentiasa anggap senario kes terburuk dan fikir orang lain akan mengubah suai setiap kali anda mendapat data, jadi setiap kali masa Ia akan dikunci setiap kali data diambil, supaya jika orang lain ingin mendapatkan semula data, mereka akan disekat sehingga ia dibuka kunci. Banyak mekanisme kunci sedemikian digunakan dalam pangkalan data hubungan tradisional, seperti kunci baris, kunci meja, kunci baca, kunci tulis, dll., yang semuanya dikunci sebelum operasi. Sama seperti untuk kemas kini, pelaksanaan kata kunci yang disegerakkan dalam Java juga merupakan kunci pesimis.

Kunci optimis: Seperti namanya, ia sangat optimistik Setiap kali anda pergi untuk mendapatkan data, anda fikir orang lain tidak akan mengubah suainya, jadi anda tidak akan menguncinya akan menilai sama ada orang lain telah melawat dalam tempoh ini Untuk mengemas kini data ini, anda boleh menggunakan mekanisme seperti nombor versi. Penguncian optimistik sesuai untuk jenis aplikasi berbilang baca, yang boleh meningkatkan daya pemprosesan Mekanisme keadaan_tulis yang disediakan oleh pangkalan data sebenarnya adalah kunci optimistik yang disediakan. Tutorial yang disyorkan: "

Tutorial Video Oracle

"

Atas ialah kandungan terperinci Apakah kegunaan untuk kemas kini dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan