SITE MEKLĒŠANA

DLL komandas "nepilnības" atjaunina MySQL

Katram programmētājam, kam bija jāstrādā ar datubāzēm, bija jāsaskaras ar DML operatoriem (trans ar angļu valodu. - "datu manipulācijas valoda"), piemēram, Izvēlieties, Ievietot, Dzēst un Atjaunināt. MySQL vide arī izmanto visas iepriekš minētās komandas savā arsenālā.

Šie operatori loģiski runā par viņumērķis - atlasīt ierakstus, ievietot jaunas vērtības, atjaunināt esošos datus, pabeigt vai saskaņā ar noteiktiem nosacījumiem, izdzēst informāciju datu bāzē. Teorētisko materiālu mācīšana sīki apraksta katras komandas darba principu un to sintaksi, taču nav minēti grūtības, kas var rasties lietošanas laikā. Šis materiāls tiks veltīts dažu no tiem izskatīšanai.

mysql ievietot update select

Īsi par DML operatoriem (Ievietot)

Pirms turpināt darbu, sīkāk jāatceras katras funkcijas mērķis. Mēs vairāk ieinteresēsim divus operatorus: Ievietot un Atjaunināt, jo no tiem izriet, ka galvenie grūtības rodas, apstrādājot lielu datu apjomu.

mysql ievietot atjauninājumu

Sāciet ar komandu Ievietot, un tad gludi pāriet uz Atjaunināt MySQL Sistēma, tāpat kā jebkura cita mūsdienu DBVS, izmanto operāciju Ievietot lai pievienotu jaunus ierakstus esošajiemdatu bāzes tabulas. Šīs operācijas sintakse ir ļoti vienkārša un vienkārša. Tajā ir uzskaitīti lauki, kur tiks ievadītas vērtības, galamērķis - tabulas nosaukums un ierakstu saraksts tieši. Pēc katras komandas izpildes Ievietot Datubāze tiks atjaunināta ar jaunām vērtībām.

Atjaunināt operatoru

Tomēr praksē bieži sastopamasSituācija ir tā, ka attiecībā uz vienu datu kopu ir jāatjaunina viena vai vairākas atribūtu vērtības. Piemēram, mēs varam pieminēt situāciju, kad uzņēmumam tika veikta reforma, turpinot pārdēvēt galvenos departamentus. Šajā gadījumā ir nepieciešams veikt izmaiņas katrai nodaļai. Ja mainās tikai vārdi, tad problēma tiek atrisināta ļoti ātri. Bet, ja mainās katras produkcijas komponentes kodējums, kas parasti ir primārā atslēga, tas, savukārt, nozīmē izmaiņas informācijā un katram darbiniekam.

atjaunināt mysql

Lai atrisinātu šo problēmu, to var piemērot DML operators - Atjaunināt MySQL-serveris, kas darbojas ar lielu skaitu ierakstu,ar atjaunināšanas operatora palīdzību izpildīt pieprasīto vaicājumu un atrisināt problēmu. Bet dažkārt atjauninājuma laikā nav grūti izskaidrojamu un grūti izskaidrojamu grūtību. Runa ir par ierakstu atjaunināšanas sarežģītību, kas tiks apspriesta vēlāk.

Par to, ko te maz teorē ...

Komandu Update, kā norādīts iepriekš,Izmanto esošo ierakstu atjaunināšanai tabulā. Bet praksē klienti, kas piekļūst datu bāzes serveriem, ne vienmēr ir zināmi, tabulās ir noteikts datu kopums vai nav. Provizoriska datu pieejamības pārbaude datubāzē par vēlākiem atjauninājumiem noved pie laika izmaksām un izšķērdēta servera spēju izmantošana.

Lai nepieļautu, ka tas notiks, DBVS ir īpašs dizains MySQL - ievietot * atjauninājumu, kurā var ievietot vai atjauninātneatkarīgi viens no otra. Tas ir, ja tabulā ir ieraksts par konkrētu nosacījumu, tiks veikts atjauninājums. Ja dati par attiecīgo stāvokli nav atrasti, MySQL serveris spēs izpildīt datu pievienošanas pieprasījumu.

Atjauniniet datus, ja ir dublikāti

Svarīga šī aspekta sastāvdaļa Ievietot-vaicājums datu bāzu pārvaldības sistēmā MySQL - "Par dublētu galveno atjauninājumu" prefikss Pilnā vaicājuma sintakse ir šāda: "ievietojiet test_table (employer_id, name) vērtības (1, "Abramov") par galveno atjauninājumu dublikātu last_modified = NOW ();"

MySQL par galveno atjauninājumu dublikātu

Šādu pieprasījumu var izmantotdarbinieku darbību reģistrēšana, piemēram, nosakot ieejas uzņēmuma šķērsošanas laiku, pēc tam veicot pārtraukuma laika aprēķinu un kavēšanās noteikšanu. Lai tabulā netiktu ievadīti vairāki ieraksti, pietiek ar to, ka katram darbiniekam tiek veikta uzskaite ar pastāvīgu atjauninājumu. Tas ir dublikāta pārbaudes paraugs, kas ļauj to izdarīt.

Patiesībā par problēmām ...

Ņemot vērā iepriekš minēto piemēru par to, kā reģistrēt darbinieku rīcību pārbaudes punktā, pašnodarbinātās (auto_pieaugums) laukus, kurus parasti izmanto, lai aizpildītu primāro atslēgu vērtības (primārais_atslēga) Lietojot komandu MySQL atjauninājums būvniecībā ar Ievietot auto_pieaugums lauki nepārtraukti pieaug.

Tāpat viss notiek, kadJa tiek konstatēti dublikāti, tiek izmantots nomaiņas dizains. "Autoincremental" vērtība palielinās pat tad, ja tas nav nepieciešams. Tāpēc pastāv problēmas ar trūkstošām vērtībām vai diapazona pārplūdi, kas pēc tam izraisa datu pārvaldības sistēmu darbības traucējumus.

Vislielākā problēma sastopamības iespējamība

Problēma ir jāapsver Tīmeklis-developers, jo tā ir ļoti izplatīta vairāku lietotāju sistēmās (interneta vietnēm un portāliem m. lpp.), kur šī sistēma tiek izpildīts liels skaits procedūru Ievietot un Atjaunināt MySQL.

PHP-bieži tiek veikti zvani uz datu bāzi. Tādēļ maksimālās vērtības sasniegšana laukiem, kas definēti kā auto_increment, notiek ātri un, analizējot radušās grūtības, nekavējoties nav iespējams noteikt iemeslus.

 atjaunināt mysql php

Tāpēc izstrādātājiem ieteicams rūpīgi izmantot struktūru par dublikāta atslēgu komandā mysql atjauninājums. izvēlēties - vaicājumus, piekļūstot datu bāzes serverimdarbosies bez kļūdām, taču pievienojot jaunus ierakstus datu bāzē, ir pilns ar nepatīkamām situācijām, kas vēlāk rada nopietnas problēmas. Kā alternatīvu, ieteicams autoincremental laukiem sākotnēji pārbaudīt pieejamību ierakstus viņiem, un pēc tam, lai atjauninātu tos.

</ p>
  • Reitings: