Sąlyga CONSTRAINT

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

apribojimas yra panašus į rodyklė, bet jis gali būti naudojamas ir norint sukurti ryšys su kita lentele.

Sąlygą CONSTRAINT sakiniuose ALTER TABLE ir CREATE TABLE naudokite norėdami kurti arba naikinti apribojimus. Yra du sąlygų CONSTRAINT tipai: vienas – apribojimams kurti viename lauke, kitas – apribojimams kurti daugiau nei viename lauke.

Pastaba : "Microsoft Access" duomenų bazės modulis nepalaiko APRIBOJIMĄ naudoti arba duomenų apibrėžimo kalbos sakinių, Microsoft Access duomenų bazės. Vietoj to naudokite DAO metodus Create.

Sintaksė

Vieno lauko apribojimas:

APRIBOJIMĄ pavadinimas {PIRMINIO RAKTO | UNIKALUS | NOT NULL |
NUORODOS užsie ionLentelė [(išorinis_laukas1, išorinis_laukas2)]
[Įjungta NAUJINTI PAKOPOMIS | NUSTATYTI NULL]
[Įjungta NAIKINTI PAKOPOMIS | NUSTATYTI NULL]}

Kelių laukų apribojimas:

APRIBOJIMĄ pavadinimas
{PIRMINIO RAKTO (primary1[, primary2 [,...]]) |
UNIKALUS (unique1[, unique2 [,...]]) |
NOT NULL (notnull1[, notnull2 [,...]]) |
IŠORINIS RAKTAS [NE RODYKLĖ] (nuor1[, nuorodoje2 [,...]]) NUORODOS išorinės_lentelės [(išorinis_laukas1 [, išorinis_laukas2 [,...]])]
[Įjungta NAUJINTI PAKOPOMIS | NUSTATYTI NULL]
[Įjungta NAIKINTI PAKOPOMIS | NUSTATYTI NULL]}

Sąlyga CONSTRAINT sudaryta iš šių dalių:

Dalis

Aprašas

pavadinimas

Kuriamo apribojimo pavadinimas.

pirminis1, pirminis2

Lauko arba laukų, kuriems bus priskirtas pirminis raktas, pavadinimas.

unikalus1, unikalus2

Lauko arba laukų, kurie bus priskirti kaip unikalus raktas, pavadinimas.

ne_neapibrėžta1, ne_neapibrėžta2

Lauko ar laukų, tik ne nulinės reikšmės pavadinimas.

nuoroda1, nuoroda2

išorinis raktas lauko arba laukų, nurodančių laukus kitoje lentelėje, pavadinimas.

išorinė_lentelė

išorinė lentelė, turinčios išoriniame_lauke nurodytą lauką ar laukus, pavadinimas.

išorinis_laukas1, išorinis_laukas2

Išorinės_lentelės lauko arba laukų, nurodytų nuoroda1 ir nuoroda2, pavadinimas. Šią sąlygą galite praleisti, jei nurodytas laukas yra išorinės_lentelės pirminis raktas.


Pastabos

Vieno lauko apribojimo sintaksę naudokite sakinio ALTER TABLE arba CREATE TABLE lauko apibrėžimo sąlygoje iš karto, kai nurodote lauko duomenų tipą.

Kelių laukų apribojimo sintaksę naudokite, kai sakiniuose ALTER TABLE arba CREATE TABLE naudojate rezervuotasis žodis CONSTRAINT už lauko apibrėžimo sąlygos.

Naudodami sąlygą CONSTRAINT galite lauką nurodyti vienu iš šių apribojimo tipų:

  • Rezervuotąjį žodį UNIQUE galite naudoti nurodydami lauką kaip unikalų raktą. Tai reiškia, kad jokie du lentelės įrašai negali šiame lauke turėti tos pačios reikšmės. Kaip unikalų galite nurodyti bet kurį lauką ar laukų sąrašą. Jei kelių laukų apribojimas yra nurodytas kaip unikalus raktas, bendros visų rodyklės laukų reikšmės turi būti unikalios, net jei tik viename lauke du ar daugiau įrašų turi tą pačią reikšmę.

  • Rezervuotuosius žodžius PRIMARY KEY galite naudoti nurodydami vieną lentelės lauką ar jų rinkinį kaip pirminį raktą. Visos pirminio rakto reikšmės turi būti unikalios ir ne neapibrėžtos, o lentelėje gali būti tik vienas pirminis raktas.

    Pastaba : Nenustatykite lentelės, jau turinčios pirminį raktą, PRIMARY KEY apribojimo; jei tai padarysite, įvyks klaida.

  • Rezervuotuosius žodžius FOREIGN KEY galite naudoti nurodydami lauką kaip išorinį raktą. Jei išorinės lentelės pirminis raktas susideda iš daugiau nei vieno lauko, turite naudoti kelių langelių apribojimo apibrėžimą, kuriame pateikiami visi nurodomi laukai, išorinės lentelės pavadinimą ir išorinės lentelės nurodomus laukus tokia pačia tvarka, kaip surašyti nurodomi laukai. Jei nurodomas laukas ar laukai yra išorinės lentelės pirminis raktas, jums nereikia nurodyti nurodytų laukų. Numatyta, kad duomenų bazės variklis išorinės lentelės pirminį raktą laiko nurodomais laukais.

    Išorinio rakto apribojimai nurodo tam tikrus atliekamus veiksmus, kai pakeičiama atitinkama pirminio rakto reikšmė:

  • Galite nurodyti, kad veiksmai būtų atliekami išorinėje lentelėje, paremtoje atitinkamu veiksmu, kurį pirminis raktas atlieka lentelėje, kurioje apibrėžta sąlyga CONSTRAINT. Pavyzdžiui, apžvelkite šį lentelės Klientai apibrėžimą:

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

Apžvelkite šį lentelės Užsakymai apibrėžimą, kuris nurodo išorinio rakto ryšį pagal lentelės Klientai pirminį raktą:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

Sąlygos ON UPDATE CASCADE ir ON DELETE CASCADE nurodomos pagal išorinį raktą. Sąlyga ON UPDATE CASCADE reiškia, kad jei kliento identifikatorius (Kliento_ID) yra naujinamas lentelėje Klientai, naujinimas bus išdėstytas pakopomis lentelėje Užsakymai. Kiekvienas užsakymas, turintis atitinkančią kliento identifikatoriaus reikšmę, bus automatiškai naujinamas su nauja reikšme. Sąlyga ON DELETE CASCADE reiškia, kad jei klientas yra pašalinamas iš lentelės Klientai, visos lentelės Užsakymai eilutės, turinčios tą pačią kliento identifikatoriaus reikšmę, taip pat bus pašalintos.

Apžvelkite šį kitokį lentelės Užsakymai apibrėžimą naudodami veiksmą SET NULL vietoje veiksmo CASCADE:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

Sąlyga ON UPDATE SET NULL reiškia, kad, jei vartotojo identifikatorius (Kliento_ID) yra naujinamas lentelėje Klientai, atitinkamos lentelės Užsakymai išorinio rakto reikšmės bus automatiškai nustatytos kaip NULL. Panašiai sąlyga ON DELETE SET NULL reiškia, kad, jei klientas yra pašalinamas iš lentelės Klientai, visi atitinkantys lentelės Užsakymai išoriniai raktai bus automatiškai nustatyti kaip NULL.

Norėdami neleisti automatinio išorinių raktų rodyklių kūrimo, galite naudoti modifikatorių NO INDEX. Tokia išorinio rakto apibrėžimo forma turėtų būti naudojama tik tais atvejais, kai rezultato rodyklės reikšmės būna dažnai pasikartojančios. Kai išorinio rakto rodyklės reikšmės dažnai pasikartoja, naudoti rodyklę gali būti mažiau efektyvu, nei paprasčiausiai žvalgyti lentelę. Šio tipo rodyklės laikymas, su į lentelę įdėtomis ir iš jos panaikintomis eilutėmis, sumažina našumą ir neteikia jokios naudos.



Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×