KomputerDatabase

"Perangkap" DML-Tim Pembaruan MySQL

Setiap programmer, yang harus bekerja dengan database, dihadapkan dengan DML-operator (diterjemahkan dari bahasa Inggris - .. "Data Manipulation Language"), seperti Select, Insert, Delete dan Update. MySQL-transportasi juga menggunakan arsenal dari semua perintah di atas.

Pernyataan-pernyataan ini secara logis berbicara tentang pengangkatannya - catatan memilih, memasukkan nilai-nilai baru, memperbarui data yang ada, lengkap, atau sesuai dengan kondisi yang ditentukan, penghapusan informasi dalam database. Materi pelatihan teoritis dijelaskan secara rinci prinsip pengoperasian setiap perintah dan sintaks mereka, tapi tak menemukan referensi untuk kesulitan yang mungkin timbul dalam praktek selama penggunaan. Bahan ini akan dikhususkan untuk pertimbangan beberapa dari mereka.

Secara singkat tentang DML-pernyataan (Insert)

Sebelum melangkah lebih jauh, perlu sekali lagi untuk mengingat rincian lebih lanjut tentang tujuan masing-masing fungsi. Kami akan memiliki dua operator yang tertarik secara lebih rinci: Insert dan Update, karena tergantung pada mereka berasal kesulitan utama dalam mengolah data dalam jumlah besar.

Anda harus mulai dengan Insert perintah, dan kemudian secara bertahap pindah ke Update. sistem MySQL, seperti database modern lainnya, menggunakan operasi Insert untuk menambahkan catatan baru untuk tabel yang ada basis data. Sintaks operasi ini sangat sederhana dan mudah. Ini berisi daftar bidang yang akan dibuat dengan nilai-nilai, tujuan - nama meja - dan segera memperkenalkan daftar data. Setiap kali Anda melakukan database Insert akan diperbarui dengan nilai-nilai baru.

pernyataan update

Namun, dalam praktiknya, cukup sering ada situasi yang untuk beberapa set data satu atau nilai atribut lebih diperbarui. Sebagai contoh, sebuah situasi di mana perusahaan itu reformasi dengan mengubah nama lanjut dari departemen utama. Dalam hal ini perlu untuk membuat perubahan untuk setiap departemen. Jika hanya mengubah nama, maka masalah dapat diselesaikan dengan sangat cepat. Namun, jika mengubah coding setiap komponen dari seluruh produksi, yang biasanya berfungsi sebagai kunci utama, yaitu, pada gilirannya, memerlukan perubahan informasi dan untuk setiap karyawan.

Update - DML-operator dapat diterapkan untuk memecahkan masalah ini. Server MySQL-, beroperasi dengan sejumlah besar entri, dengan bantuan sebuah pernyataan update, mengeksekusi query yang diperlukan dan menyelesaikan masalah. Tapi kadang-kadang terjadi selama update tidak cukup jelas dan sulit untuk menjelaskan kompleksitas. Itulah yang menyebabkan sulitnya catatan diperbarui, akan dibahas lebih lanjut.

Apa yang sedikit yang telah dikatakan dalam teori ...

Tim Update, seperti disebutkan di atas, digunakan untuk memperbarui catatan yang ada dalam tabel. Tapi dalam prakteknya, klien mengakses server database tidak selalu diketahui, ada satu set tertentu dari data dalam tabel atau tidak. Awal memeriksa ketersediaan data dalam database untuk memperbarui berikutnya dari hasil dalam memakan waktu dan buang kemampuan server.

Untuk menghindari hal ini, dalam struktur database MySQL khusus - Insert * Update, di mana memasukkan atau memperbarui dapat dilakukan secara independen satu sama lain. Itu adalah ketika meja memiliki entri untuk kondisi tertentu, akan diperbarui. Jika kondisi dipertimbangkan, data tidak akan ditemukan, MySQL-server mampu melakukan permintaan upload data.

Update data ketika ada duplikat

Sebuah komponen penting dari Insert ini - permintaan untuk sistem manajemen database MySQL - «Pada Duplikat Key Perbarui» awalan. Sintaks lengkap query adalah sebagai berikut: «masukkan ke test_table (employer_id, nama) nilai ( 1, 'Abramov') pada kunci duplikat pembaruan LAST_MODIFIED = NOW (); ".

permintaan tersebut dapat digunakan untuk merekam tindakan, misalnya, menentukan persimpangan berlalunya waktu perusahaan diikuti dengan menghitung interval waktu dan menunda deteksi. Agar tidak membuat meja beberapa catatan, cukup untuk setiap karyawan untuk menyimpan catatan dengan memperbarui konstan. Ini adalah desain cek duplikat memungkinkan.

Sebenarnya masalah ...

Mengingat contoh di atas tindakan staf pendaftaran di pintu masuk, seperti masalah adalah penggunaan samouvelichivayuschihsya (auto _ increment) bidang, yang biasanya digunakan untuk mengisi nilai-nilai kunci primer (primary key _). Jika Anda menggunakan MySQL Perbarui perintah di desain dengan Insert auto _ kenaikan, bidang ini terus meningkat.

Demikian juga, segala sesuatu yang terjadi ketika menggunakan konstruksi pengganti dalam kasus duplikat deteksi. "Auto-increment" nilai meningkat bahkan dalam kasus di mana itu tidak diperlukan. Karena itu, masalah timbul nilai-nilai lulus overflow atau rentang, yang kemudian menyebabkan kerusakan sistem manajemen database.

Kemungkinan besar masalah

Menguraikan masalah harus dipertimbangkan Web-pengembang, seperti yang paling umum dalam sistem multi-user (website, portal, dan sebagainya. P.), Ketika sistem dijalankan sejumlah besar prosedur Insert dan Memperbarui MySQL.

PHP - banding ke dasar sangat sering dilakukan. Oleh karena itu, untuk mencapai margin yang maksimal, yang didefinisikan sebagai auto_increment, terjadi dengan cepat, dan dalam analisis kesulitan yang dihadapi untuk menetapkan alasan tidak akan bekerja.

Oleh karena itu, pengembang didorong untuk menjadi perhatian untuk penggunaan desain pada duplikat kunci dalam perintah update mysql. pilih - query ketika mengakses database server akan bekerja tanpa kesalahan, tapi penambahan catatan baru untuk database yang penuh dengan situasi yang tidak menyenangkan dalam memimpin masa depan masalah serius. Atau, dianjurkan untuk bidang auto-increment awalnya memeriksa catatan mereka, dan kemudian menahan mereka diperbarui.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 id.unansea.com. Theme powered by WordPress.