PostgreSQL UNIQUE Constraint

Summary: tässä opetusohjelmassa opit PostgreSQL UNIQUE constraint varmistamaan, että sarakkeeseen tai sarakeryhmään tallennetut arvot ovat yksilöllisiä taulukon riveillä.

joskus haluat varmistaa, että sarakkeeseen tai sarakeryhmään tallennetut arvot ovat ainutlaatuisia koko taulukossa, kuten sähköpostiosoitteet tai käyttäjätunnukset.

PostgreSQL tarjoaa UNIQUE rajoituksen, joka ylläpitää datan ainutlaatuisuutta oikein.

kun UNIQUE rajoitus on käytössä, joka kerta kun lisäät uuden rivin, se tarkistaa, onko arvo jo taulukossa. Se hylkää muutoksen ja antaa virheen, jos arvo on jo olemassa. Sama prosessi tehdään olemassa olevan tiedon päivittämiseksi.

kun lisäät UNIQUE rajoituksen sarakkeeseen tai sarakeryhmään, PostgreSQL luo automaattisesti ainutlaatuisen indeksin sarakkeeseen tai sarakeryhmään.

PostgreSQL UNIQUE constraint esimerkki

seuraava lausunto luo uuden taulukon nimeltä person, jossa on UNIQUE rajoitus email sarakkeelle.

Code language: SQL (Structured Query Language) (sql)

huomaa, että yllä oleva UNIQUE rajoitus voidaan kirjoittaa uudelleen taulukkorajoituksena, kuten seuraavasta kyselystä käy ilmi:

Code language: SQL (Structured Query Language) (sql)

lisätään ensin uusi rivi person taulukkoon käyttäen INSERT lauseketta:

Code language: SQL (Structured Query Language) (sql)

toiseksi, lisää toinen rivi päällekkäistä sähköpostia.

Code language: SQL (Structured Query Language) (sql)

PostgreSQL antoi virheilmoituksen.

Code language: SQL (Structured Query Language) (sql)

ainutlaatuisen rajoituksen luominen useille sarakkeille

PostgreSQL mahdollistaa UNIQUE rajoituksen luomisen sarakeryhmälle käyttämällä seuraavaa syntaksia:

Code language: SQL (Structured Query Language) (sql)

sarakkeen C2 ja c3 arvojen yhdistelmä on yksilöllinen koko taulukossa. Sarakkeen C2 tai c3 arvon ei tarvitse olla yksilöllinen.

lisäämällä yksilöllinen rajoite käyttäen yksilöllistä indeksiä

, saatat joskus haluta lisätä ainutlaatuisen rajoituksen olemassa olevaan sarakkeeseen tai sarakeryhmään. Katsotaanpa katsomaan seuraava esimerkki.

ensin oletetaan, että sinulla on taulu nimeltä equipment:

Code language: SQL (Structured Query Language) (sql)

toiseksi luodaan yksilöllinen hakemisto, joka perustuu sarakkeeseen equip_id.

Code language: SQL (Structured Query Language) (sql)

kolmanneksi, lisätään equipment taulukkoon yksilöllinen rajoite käyttäen equipment_equip_id – indeksiä.

Code language: SQL (Structured Query Language) (sql)

huomaa, että ALTER TABLE lausuma saa yksinoikeuden pöytään. Jos sinulla on vireillä olevia tapahtumia, se odottaa kaikkien tapahtumien valmistumista ennen taulukon muuttamista. Tarkista siis pg_stat_activity-taulukko nähdäksesi käynnissä olevat käynnissä olevat tapahtumat seuraavan kyselyn avulla.:

Code language: SQL (Structured Query Language) (sql)

tulosta kannattaa katsoa, jotta löytyy state sarake, jonka arvo on idle in transaction. Ne ovat liiketoimia, jotka ovat kesken.

tässä opetusohjelmassa olet oppinut UNIQUE rajoitteista ja siitä, miten niitä voidaan käyttää sarakkeeseen tai sarakeryhmään tallennettujen arvojen vahvistamiseen saman taulukon riveillä.

  • oliko tästä opetuksesta apua ?
  • YesNo



+