DatoriDatu bāzes

"Nekļūdīga" DML-Team atjauninājums MySQL

Katrs programmētājs, kurš bija strādāt ar datu bāzēm, saskaras ar DML operatori (tulkojumā no angļu valodas - .. "datu manipulācijas valoda"), piemēram, Select, ievietošana, dzēšana un Atjaunināt. MySQL transportu izmanto arī savu arsenālu visu iepriekš minēto komandu.

Šie apgalvojumi ir loģiski runā par viņa iecelšanu amatā - izvēloties ierakstus, ievietot jaunas vērtības, atjauninot esošos datus, pilnīga vai saskaņā ar noteiktajiem nosacījumiem, izņemšanas informāciju datu bāzē. Teorētiskie mācību materiāli ir aprakstītas detalizēti darbības katras komandas un to sintaksi principu, bet nekur atrastas atsauces uz grūtībām, kas varētu rasties praksē lietošanas laikā. Šis materiāls tiks veltīta izskatīšanai daži no tiem.

Īsumā par DML-pārskatu (Insert)

Pirms turpināt tālāk, ir nepieciešams vēlreiz atcerēties detalizētāku informāciju par mērķi katru funkciju. Mums būs divi operatori interesē sīkāk: Insert un Update, jo tā ir atkarīga no tiem iegūtu galvenās grūtības apstrādāt lielu datu apjomu.

Jums jāsāk ar komandu Ievietot un pēc tam pakāpeniski pāriet uz Update. MySQL sistēma, tāpat kā jebkuru citu mūsdienu datu bāzi, izmantojiet Ievietot darbību, lai pievienotu jaunus ierakstus esošām tabulām datu bāzē. Šīs operācijas sintakse ir ļoti vienkāršs un tiešs. Tā satur sarakstu nozarēs, kas tiks veikti, lai vērtībām, galamērķi - nosaukumu galda - un nekavējoties ieviesa datu sarakstu. Katru reizi, kad jūs veikt Ievietot datubāzi tiks papildināts ar jaunām vērtībām.

Atjaunināt paziņojums

Tomēr praksē bieži vien ir situācijas, ka kāda datu kopu viena vai vairāku atribūtu vērtībām jāatjaunina. Piemēram, situācijā, kad uzņēmums bija reformas ar turpmāku pārsaukšanu no galvenajiem departamentiem. Šajā gadījumā tas ir nepieciešams, lai veiktu izmaiņas katrai nodaļai. Ja tikai mainot nosaukumu, tad problēmu var atrisināt ļoti ātri. Tomēr, ja mainot kodēšana katra komponenta visu produkciju, kas parasti kalpo kā primārā atslēga, kas, savukārt, nozīmē mainīt informāciju un katram darbiniekam.

Update - DML-operators var piemērot, lai atrisinātu šo problēmu. MySQL- serveris, kas darbojas ar lielu skaitu ierakstu, ar palīdzību atjaunināšanas paziņojumu, izpildīt nepieciešamo vaicājumu, un atrisināt šo problēmu. Bet dažreiz notiek laikā atjaunināšana nav gluži skaidrs un ir grūti izskaidrot sarežģītību. Tas ir tas, kas izraisa grūtības ierakstu atjauninātas, tiks apspriesti tālāk.

Kas maz ir teikts teorētiski ...

Atjaunināt Team, kā minēts iepriekš, tiek izmantoti, lai atjauninātu esošos ierakstus tabulā. Bet praksē klienti piekļūst datu bāzes serveri ne vienmēr ir zināms, ir noteikta kopa datu tabulās vai ne. Iepriekšēja pārbaudītu pieejamību datu bāzē, lai turpmāk atjauninātu rezultātu laikietilpīgs un atkritumu servera iespējām.

Lai no tā izvairītos, īpašā datubāzē MySQL struktūrā - Ievietot * Update, kurā ievietot vai atjaunināt var veikt, neatkarīgi viens no otra. Tas ir tad, kad tabula ir ieraksts par konkrētam nosacījumam, tiks atjaunināts. Ja nosacījumi uzskata, ka dati netiks atrasts, MySQL serveris ir spējīgs veikt datu augšupielādes pieprasījumu.

Atjaunināt datus, kad ir dublikāti

Svarīgs elements šajā Ievietot - pieprasījums uz MySQL datu bāzes pārvaldības sistēma - «On Duplicate Key Update» prefiksu. Pilnīgs sintakse vaicājums ir šāds: "ievietot test_table (employer_id, nosaukums) vērtības ( 1, 'Abramov") par dublikāta atslēgas atjauninājumu LAST_MODIFIED = NOW (); ".

Šādu pieprasījumu var izmantot, lai ierakstītu rīcību, piemēram, noteikt krustojums fragments laika uzņēmums seko skaitot laika intervālu un atklāšanas kavēšanās. Lai neveikt tabulā pāris ierakstus, pietiekami, lai katram darbiniekam, lai saglabātu ierakstus ar pastāvīgu atjaunināšanu. Tas ir dublikāts pārbaude dizains ļauj to.

Patiesībā problēmas ...

Ņemot vērā iepriekš minēto piemēru reģistrācijas darbinieku rīcību pie ieejas, jo problēma ir izmantot samouvelichivayuschihsya (auto _ pieauguma) lauki, kurus parasti izmanto, lai aizpildītu primārās atslēgas vērtībām (primārā _ atslēga). Ja jūs izmantojat MySQL Update komandu dizains ar ievietošana auto _ pieaugums, lauks ir pastāvīgi pieaug.

Tāpat, viss notiek, izmantojot rezerves būvniecību gadījumā dublikāta atklāšanas. "Auto-pieaugums" vērtība tiek palielināta pat ja tas nav nepieciešams. Sakarā ar to, problēmas rodas pārpildes pass vērtības vai diapazoni, kas pēc tam noved pie nepareizas darbības datu bāzu pārvaldības sistēmām.

Visticamāk problēma

Apraksta problēma ir uzskatāms Web-izstrādātājiem, jo tas ir visbiežāk vairāku lietotāju sistēmās (mājas lapas, portāli un P. utt.), Kad sistēma tiek izpildīts liels procedūru skaits Ievietot un Atjaunināt MySQL.

PHP - apelācijas pamatnei ļoti bieži veic. Tādēļ, lai panāktu maksimālu peļņu, ko definē kā AUTO_INCREMENT, notiek ātri, un, analizējot grūtības radušās, lai noteiktu iemeslus, vienkārši nestrādās.

Tādēļ attīstītāji tiek aicināti būt uzmanīgi izmantošanai dizains par dublikāta atslēgu komandu mysql atjauninājumu. atlasīt - vaicājumi, piekļūstot datu bāzes serveris darbosies bez kļūdām, bet pievienojot jaunu ierakstu datu bāzē, ir pilns ar nepatīkamām situācijām nākotnē radīt nopietnas problēmas. Alternatīvi, tas ir ieteicams, lai auto pieauguma lauki sākotnēji pārbaudīt savu ierakstu, un pēc tam turiet tos atjaunināt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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