Komputiloj, Datumbazoj
"Kaptiloj" DML-Teamo Ĝisdatigi MySQL
Ĉiu programisto, kiu devis labori kun datumbazoj, antaŭ la DML-operatoroj (tradukita el la angla - .. "Datumoj Manipulation Language"), kiel ekzemple Elektu, Insert, Forigi kaj Ĝisdatigi. MySQL-transporto ankaŭ uzas lian arsenalon de ĉiuj antaŭaj ordonoj.
Ĉi tiuj deklaroj estas logike parolas lia nomumo - elektante rekordoj, enigi novajn valorojn, ĝisdatigante ekzistantajn datumojn, kompletaj, aŭ laŭ la specifita kondiĉoj, la forigo de la informo en la datumbazo. La teoriaj trejnado materialoj estas priskribita detale la komenco de funkciado de ĉiu komando kaj ilia sintakso, sed nenie trovis referencojn al la malfacilaĵoj kiuj povus ekesti praktike dum uzo. Tiu materialo estos dediĉita al la konsidero de kelkaj el ili.
Mallonge pri DML-deklaroj (Insert)
Antaŭ procedanta plu, necesas denove memorigi pli da detaloj pri la celo de ĉiu funkcio. Ni havos du operatoroj interesas pli detale: Insert kaj Ĝisdatigi, ĉar ĝi dependas de ilin derivi la ĉefaj malfacilaĵoj en procesante grandaj kvantoj de datumoj.
Vi devas komenci per la komando Enmeti, kaj poste iom post iom movi al la Ĝisdatigi. MySQL sistemo, kiel la aliaj modernaj datumbazo, uzu la Enmeti operacio por aldoni novajn rekordojn al ekzistanta tabloj datumbazo. La sintakso de ĉi tiu operacio estas tre simpla kaj simpla. Ĝi enhavas liston de kampoj kiuj estos faritaj al la valoroj, la celloko - nomo de la tablo - kaj tuj enkondukis listo de datumoj. Ĉiufoje vi plenumi la Enmeti datumbazo estos ĝisdatigita kun novaj valoroj.
Ĝisdatigi komunikaĵo
Tamen, praktike, tre ofte estas situacioj, ke por iu aro de datumoj unu aŭ pli eco valorojn por esti ĝisdatigita. Kiel ekzemplo, situacio kie la kompanio estis reformo kun pliaj renomadon el la ĉefaj fakoj. En ĉi tiu kazo oni devas fari ŝanĝojn por ĉiu fako. Se nur ŝanĝas la nomon, tiam la problemo povas esti solvita tre rapide. Tamen, se ŝanĝi la kodigon de ĉiu kompono de la tuta produktado, kiu kutime servas kiel la primara ŝlosilo, kiu estas, siavice, ĝi kunportas ŝanĝojn al la informo kaj por ĉiu oficisto.
Ĝisdatigi - DML-operatoro povas esti aplikita por solvi tiun problemon. MySQL- servilo, operaciante kun granda nombro da enskriboj, kun la helpo de ĝisdatigo deklaro, ekzekuti la postulata query kaj solvi la problemon. Sed kelkfoje okazas dum la ĝisdatigo ne estas tute klara kaj malfacile klarigi komplekseco. Tion kaŭzas la malfacilaĵo de rekordoj ĝisdatigita, estos diskutita plu.
Lin malmulta diris teorie ...
Ĝisdatigi Teamo, kiel notite supre, estas uzata por ĝisdatigi ekzistantajn rekordojn en la tablo. Sed praktike, klientoj aliri la datumbazo serviloj ne ĉiam scias, ekzistas certa aro de datumoj en la tabloj aŭ ne. Prepara kontrolu la havebleco de datumoj en la datumbazo por la postaj ĝisdatigo de rezultigas temporaba kaj malŝparo de servilo kapabloj.
Por eviti ĉi tion, en speciala datumbazo MySQL strukturo - Enmeti * Ĝisdatigo, en kiuj la enigaĵo aŭ ĝisdatigo eblas realigitaj sendepende. Tio estas kiam la tablo havas eniron por aparta kondiĉo, estos ĝisdatigita. Se la kondiĉoj konsiderita, la datumoj ne estos trovita, MySQL-servilo estas kapabla elfari datumoj alŝutoj peto.
Ĝisdatigi datumoj kiam estas duplikatoj
Grava komponanto de ĉi Enmeti - peton al la MySQL datumbazo mastrumado sistemo - «La Duobligi Key Ĝisdatigi» prefikso. La plena sintakso de la pridemando estas la jena: «enmeti en test_table (employer_id, nomo) valoroj ( 1: Abramov ') sur duplikatajn klavo ĝisdatigo last_modified = NUN (); ".
Tia peto povas esti uzita por registri la agojn de, ekzemple, determini la kruciĝo pasejo tempo entrepreno sekvas kalkulante tempo intervalo kaj malkaŝo prokrasto. Por ne fari la tablo kelkajn diskojn, sufiĉe por ĉiu oficisto teni rekordojn kun konstanta ĝisdatigo. Ĝi estas duplikato ĉeko dezajno permesas ĝin.
Efektive problemoj ...
Konsiderante la supre ekzemplo de la registriĝo bastonon ago ĉe la enirejo, kiel la problemo estas la uzo samouvelichivayuschihsya (auto _ pliigo) kampoj, kiuj estas tipe uzita por plenigi la primara ŝlosilo valoroj (primara _ ŝlosilo). Se vi uzas MySQL Ĝisdatigi komando en dezajno kun Enmeti aŭtomata _ pliigo, la kampo estas konstante kreskanta.
Same, ĉiu okazas kiam uzante anstataŭigo konstruo en la kazo de duobligita detekto. "Aŭtomate pliigo" valoro estas pliigita eĉ en la kazo kie ĝi ne estas bezonata. Pro tio, ili ŝprucas problemojn troplenigxis pasejo valoroj aŭ intervaloj, kiu poste kondukas al misfunkcio de datumbazo mastrumado sistemoj.
Plej verŝajne la problemo
Priskribas la problemon devas esti konsiderata TTT-programistoj, kiel ĝi estas plej komuna en multi-uzanto sistemoj (retejoj, portaloj, kaj tiel plu. P.), Kiam la sistemo estas ekzekutita grandan nombron da proceduroj Enmeti kaj Aktualigi MySQL.
PHP - apelacio al la bazo tre ofte prezentis. Tial, por atingi maksimuman randoj, difinita kiel auto_increment, okazas rapide, kaj en la analizo de la malfacilaĵoj kiujn establi la kialoj simple ne funkcios.
Sekve, programistoj estas instigita atentu la uzon de la dezajno sur duplikatajn klavo komandis mysql ĝisdatigo. elektu - pridemandojn kiam aliranta la datumbazo servilo funkcios sen eraro, sed la aldono de novaj registroj por la datumbazo estas ŝarĝita de malagrabla situacioj en la estonteco kondukas al seriozaj problemoj. Alternative, ĝi estas rekomendita por aŭtomate pliigo kampoj komence kontroli liaj diskoj, kaj tiam teni ilin ĝisdatigita.
Similar articles
Trending Now