Komputer, Basis data
"Pitfalls" DML-Tim Update MySQL
Unggal programmer, anu kungsi digawekeun ku basis data, Nyanghareupan nu DML-operator (ditarjamahkeun tina basa Inggris - .. "Data manipulasi Basa"), kayaning Pilih, Selapkeun, Hapus jeung Update. MySQL-angkutan ogé migunakeun arsenal miboga sakabéh paréntah luhur.
pernyataan ieu téh logis ngawangkong ngeunaan janjian na - rékaman milih, ngalebetkeun nilai anyar, ngamutahirkeun data aya, lengkep, atawa luyu jeung kaayaan dieusian, jalan ngaleupaskeun tina informasi na pangkalan data. Bahan latihan teoritis digambarkeun di jéntré prinsip operasi unggal paréntah tur rumpaka maranéhanana, tapi nowhere kapanggih rujukan kana kasusah anu bisa timbul dina praktekna salila pamakéan. bahan ieu bakal devoted kana tinimbangan ti sababaraha di antarana.
Sakeudeung ngeunaan DML-pernyataan (Selapkeun)
Sateuacan lajengkeun salajengna, perlu sakali deui kana ngelingan leuwih rinci ngeunaan Tujuan unggal fungsi. Urang kudu dua operator museurkeun leuwih jéntré: Selapkeun jeung Update, sabab gumantung kana éta nurunkeun kasusah utama dina ngolah data nu jumlahna ageung.
Anjeun kudu mimitian ku Selapkeun paréntah, lajeng laun ngalih ka Update nu. Sistim MySQL, kawas sagala database modern sejen, make operasi Selapkeun pikeun nambahkeun rékaman anyar pikeun tabel aya database. The rumpaka operasi ieu pisan basajan tur lugas. Ieu ngandung hiji Listing sahiji widang anu bakal dilakukeun kana nilai, tujuan - nami tabél - jeung geura ngawanohkeun daptar data. Unggal waktos Anjeun ngalakukeun databés Selapkeun bakal diropéa kalawan nilai anyar.
pernyataan Update
Sanajan kitu, di prakna, rada sering aya kaayaan nu keur sababaraha set data salah sahiji atawa nilai atribut leuwih bisa diropéa. Salaku conto, kaayaan dimana pausahaan ieu reformasi kalayan renaming salajengna sahiji departemén utama. Dina hal ieu perlu sangkan parobahan pikeun tiap departemén. Mun ukur ngarobah ngaran, tuluy masalah bisa direngsekeun kacida gancangna. Sanajan kitu, lamun ngarobah coding unggal komponén sakabéh produksina, nu biasana boga fungsi minangka tombol primér, éta téh, kahareupna diperlukeun parobahan informasi jeung pikeun tiap karyawan.
Update - DML-operator bisa dilarapkeun pikeun ngajawab masalah ieu. server MySQL-, operasi kalawan angka nu gede ngarupakeun éntri, kalayan bantuan hiji pernyataan update, hajar pamundut nu diperlukeun tur ngabéréskeun masalah. Tapi kadang lumangsung salila update teh teu rada jelas tur hese ngajelaskeun pajeulitna. Maksudna naon ngabalukarkeun kasusah tina rékaman diropéa, bakal dibahas salajengna.
Naon saeutik geus ngadawuh dina teori ...
Tim Update, sakumaha dicatet luhur, dipaké pikeun ngapdet rékaman aya dina tabél. Tapi dina praktekna, klien ngakses pangladén databés teu salawasna dipikawanoh, aya nyaéta set tangtu data dina tabel atanapi henteu. Awal pariksa kasadiaan data dina database keur Ngamutahirkeun saterusna hasil dina jangka waktu-consuming jeung runtah kamampuhan server.
Ulah ieu, dina struktur database MySQL husus - Selapkeun * Update, numana sisipan atanapi update bisa dipigawé sacara mandiri unggal lianna. Maksudna lamun tabél boga entri pikeun kaayaan nu tangtu, bakal diropéa. Upami kondisi dianggap, data baris teu kapanggih, MySQL-server is bisa nedunan pamundut muatan data.
data Update lamun aya duplikat
Sahiji komponén penting Selapkeun ieu - pamundut ka sistem manajemen database MySQL - «Di duplikat Key Update» awalan. The rumpaka lengkep pamundut teh nyaeta kieu: «ngalebetkeun kana test_table (employer_id, ngaran) nilai ( 1, 'Abramov') dina konci duplikat update last_modified = AYEUNA (); ".
pamundut Saperti bisa dipaké pikeun ngarekam laku lampah, contona, nangtukeun NANGTANG petikan waktos perusahaan dituturkeun ku cacah waktos interval sarta reureuh deteksi. Dina urutan moal nyieun tabél sababaraha rékaman, cukup pikeun tiap karyawan tetep rékaman jeung Ngamutahirkeun konstan. Éta desain dipariksa duplikat ngamungkinkeun eta.
Sabenerna masalah ...
Tempo conto di luhur tina aksi staf pendaptaran di lawang, sakumaha masalah nya éta ngagunakeun samouvelichivayuschihsya (otomatis _ increment) sawah, nu ilaharna dipaké pikeun ngeusian éta nilai konci primér (primér konci _). Upami Anjeun keur make MySQL Update paréntah dina rarancang jeung Selapkeun otomatis _ increment, sawah anu terus ngaronjatkeun.
Kitu ogé, sagalana kajadian nalika maké konstruksi ngagantian dina kasus duplikat deteksi. "Otomatis-increment" nilai ngaronjat malah dina kasus dimana eta henteu diperlukeun. Kusabab ieu, masalah timbul nilai lolos mudal atanapi Bulan, nu salajengna ngakibatkeun gangguan sistem manajemen database.
Paling dipikaresep masalah
Ngajelaskeun masalah kudu dianggap Web-developer, sakumaha anu kasebut paling umum dina sistim multi-pamaké (jaba, portals, jeung saterusna. P.), Lamun sistem kasebut dieksekusi angka nu gede ngarupakeun prosedur Selapkeun sarta Apdet MySQL.
PHP - banding ka dasarna pisan mindeng dipigawé. Kituna, pikeun ngahontal margins maksimum, diartikeun auto_increment, lumangsung gancang, sarta dina analisis kasusah encountered pikeun ngadegkeun alesan ngan moal jalan.
Ku alatan éta, pamekar didorong janten attentive kana pamakéan rarancang on duplikat konci di update paréntah MySQL. pilih - queries lamun ngakses ka server database bakal dianggo tanpa kasalahan, tapi ditambah rékaman anyar kana databés téh fraught kalawan kaayaan pikaresepeun dina kalungguhan hareup masalah serius. Alternatipna, eta disarankeun pikeun widang otomatis-increment mimitina pariksa keur rékaman maranéhanana, lajeng tahan aranjeunna diropéa.
Similar articles
Trending Now