Tabeli primaarvõtme lisamine või muutmine Accessis - Access
Tabeli primaarvõtme lisamine või muutmine Accessis
Primaarvõti on väli või väljakomplekt, mille väärtused on terve tabeli ulatuses kordumatud. Võtme väärtuste abil saab viidata tervetele kirjetele, kuna igal kirjel on võtme jaoks erinev väärtus. Igal tabelil saab olla ainult üks primaarvõti. Access oskab primaarvõtme välja teie jaoks tabeli loomisel automaatselt luua, kuid soovi korral saate ka ise määrata väljad, mida soovite primaarvõtmena kasutada. Selles artiklis selgitatakse, kuidas ja miks primaarvõtmeid kasutada.
Tabeli primaarvõtme seadmiseks avage tabel kujundusvaates. Valige väli (või väljad), mida soovite kasutada, ja seejärel klõpsake lindil menüüd Primaarvõti.
Märkus.: See artikkel kehtib ainult Accessi töölauaandmebaaside kohta. Accessi veebirakendustes ja veebiandmebaasides haldab Access uute tabelite primaarvõtmeid automaatselt. Kuigi neid automaatseid primaarvõtmeid on võimalik alistada, pole soovitatav seda teha.
Accessi primaarvõtmete ülevaade
Accessi primaarvõtme seadmine olemasolevate väljade abil
Primaarvõtme muutmine Accessis
Access kasutab primaarvõtme välju selleks, et mitmes tabelis asuvad andmed kiiresti omavahel seostada ja mõtestatud viisil kombineerida. Primaarvõtme välju saate kasutada teistes tabelites, et viidata primaarvõtme allikaks olevale tabelile. Neis teistes tabelites kutsutakse neid välju välisvõtmeteks. Näiteks tabeli Kliendid väli Kliendi-ID võib olla kasutusel ka tabelis Tellimused. Tabelis Kliendid on see primaarvõti. Tabelis Tellimused nimetatakse seda välisvõtmeks. Välisvõti on lihtsalt mõne muu tabeli primaarvõti. Lisateavet leiate artiklist Andmebaasikujunduse alused.
2. Välisvõti
Kui teisaldate andmeid andmebaasi, võib seal juba olla primaarvõtmega kasutatav väli. Sageli on tabeli primaarvõtmeks kordumatu identifitseerimisnumber, näiteks ID-number, seerianumber või kood. Näiteks võib teil olla klientide tabel, kus igal kliendil on kordumatu kliendi-ID. Primaarvõtmeks on Kliendi-ID väli.
Access loob primaarvõtmele automaatselt indeksi, mis aitab kiirendada päringuid ja muid toiminguid. Samuti tagab Access, et igal kirjel oleks primaarvõtmeväljal väärtus ja et see oleks alati unikaalne.
Kui loote andmelehevaates uue tabeli, loob Access selle jaoks automaatselt primaarvõtme ning määrab sellele väljanime „ID“ ja andmetüübi Automaatnumber.
Milline on hea primaarvõti?
Primaarvõtmeks sobival väljal võiksid olla järgmised omadused.
See määratleb kordumatult iga rea.
See pole kunagi tühi ega Null – selles on alati väärtus.
Selle väärtused muutuvad harva (ideaalvariandis mitte kunagi).
Kui te ei leia head võtit, looge võtmena kasutamiseks väli Automaatnumber. Väli Automaatnumber genereerib iga kirje esmakordsel salvestamisel enda jaoks automaatselt väärtuse. Seega vastab väli Automaatnumber kõigile kolmele hea primaarvõtme omadusele. Automaatnumbri välja lisamise kohta leiate lisateavet artiklist Automaatnumbri välja lisamine primaarvõtmena.
Väli Automaatnumber on hea primaarvõti.
Näited halbade primaarvõtmete kohta
Iga väli, millel puuduvad primaarvõtmeks sobiva välja omadused on primaarvõtmeks halb valik. Siin on mõned näited väljadest, mis oleks tabeli Kontaktid jaoks halvad primaarvõtmed, koos selgitustega, miks need väljad primaarvõtmeks ei sobi.
Halb primaarvõti
Ei pruugi olla tingimata kordumatu ja võib muutuda.
Võib tõenäoliselt muutuda.
Mitmel inimesel võib olla ühine sihtnumber.
Faktide ja numbrite kombinatsioonid
Faktiosa võib muutuda, mis muudab nende haldamise keerukaks. Võivad põhjustada segadust, kui osa sisust kordub eraldi väljal. Näiteks linna nime ja järjekorranumbri ühendamine (nt TALLINN0579) on halb valik, kuna linn on talletatud eraldi väljana.
Kuulub isikuandmete hulka ja pole valitsusasutustes ja mõnes ettevõttes lubatud.
Mõnel inimesel pole seda.
Inimesel võib neid elu jooksul olla mitu.
Koondvõtmed: mitme välja kombinatsiooni kasutamine primaarvõtmena
Vahel võib teil tekkida vajadus kasutada primaarvõtmena kahte või enamat tabelivälja. Näiteks tabel „Tellimuse üksikasjad“, kus talletatakse tellimuste reaüksusi, võib primaarvõtmena kasutada kahte välja: Tellimuse ID ja Toote ID. Rohkem kui ühest väljast koosnevat võtit nimetatakse koondvõtmeks.
Hästi töötava primaarvõtme väli peab iga rea kordumatult tuvastama, ei tohi sisaldada ühtegi tühi- ega nullväärtust ja võib harva muutuda (ideaalsel juhul ei muutu kunagi). Primaarvõtme seadmiseks tehke järgmist.
Avage andmebaas, mida soovite muuta.
Näpunäide.: Kui navigeerimispaani ei ole näha, vajutage selle kuvamiseks klahvi F11.
Koondvõtme loomise jaoks mitme välja valimiseks vajutage juhtklahvi (CTRL) ja klõpsake siis seda all hoides järjest iga soovitud välja reaselektorit.
Primaarvõtmena määratletud välja või väljade kõrvale vasakule lisatakse võtme indikaator.
Primaarvõtme eemaldamine Accessis
Kui eemaldate primaarvõtme, pole varem primaarvõtmeks olnud väli või väljad enam kirje tuvastamise peamised vahendid.
Primaarvõtme eemaldamisel ei kustutata välju teie tabelist, kuid eemaldatakse primaarvõtme jaoks loodud indeks.
Enne primaarvõtme eemaldamist peate veenduma, et see ei kuuluks mõnda tabeliseosesse. Kui üritate eemaldada primaarvõtit, mis kuulub ühte või mitmesse seosesse, teatab Access, et esmalt peate kustutama seose.
Tabeliseose kustutamiseks tehke järgmist.
Kui seosesse kuuluvad tabelid ei ole näha, klõpsake menüü Kujundus jaotises Seosed nuppu Kuva tabel.
Valige tabelid dialoogiboksi Tabeli kuvamine lisamiseks ja seejärel klõpsake nuppu Lisa ning Sule.
Pärast seoste kustutamist paremklõpsake navigeerimispaanil tabelit, millest soovite primaarvõtme eemaldada, ja seejärel klõpsake käsku Kujundusvaade.
Klõpsake praeguse primaarvõtme reaselektorit.
Kui primaarvõti koosneb ainult ühest väljast, klõpsake selle välja reaselektorit.
Kui primaarvõti koosneb mitmest väljast, klõpsake ühe primaarvõtmesse kuuluva välja reaselektorit.
Märkus.: Kui salvestate uue tabeli primaarvõtit seadmata, pakub Access primaarvõtme loomise võimalust. Kui klõpsate nuppu Jah, luuakse ID-väli, mis kasutab iga kirje jaoks kordumatu väärtuse loomiseks andmetüüpi Automaatnumber. Kui tabelis on juba automaatnumbriväli, kasutab Access seda välja primaarvõtmena.
Andmebaasidisaini ja asjakohase primaarvõtme valimise kohta leiate teavet järgmistest artiklitest: