PostgreSQL IZMJENA TABLICE: Dodaj i preimenuj stupac

โšก Pametni saลพetak

PostgreSQL Naredba ALTER TABLE mijenja strukturu postojeฤ‡e tablice, omoguฤ‡ujuฤ‡i vam dodavanje ili uklanjanje stupaca, preimenovanje stupca ili cijele tablice, postavljanje zadanih vrijednosti i dodavanje ograniฤenja provjere bez ponovnog stvaranja objekta.

  • ๐Ÿงฑ Sintaksa: Akcija ALTER TABLE imena tablice izvodi jednu strukturnu promjenu po naredbi.
  • โž• Dodaj stupac: ADD naziv-stupca tip-podataka dodaje novi stupac u tablicu.
  • โœ๏ธ Preimenovati: PREIMENUJ STUPAC i PREIMENUJ ZA promjenu naziva stupca ili naziva tablice.
  • ๏ธ Zadana vrijednost: ALTER COLUMN SET DEFAULT daje vrijednost za buduฤ‡e INSERT retke.
  • ๐Ÿ›ก๏ธ Provjeri ograniฤenje: ADD CHECK provjerava nove podatke i odbacuje vrijednosti koje ne zadovoljavaju pravilo.
  • ๐Ÿค– Migracije umjetne inteligencije: AI asistenti izraฤ‘uju skripte ALTER TABLE i pregledavaju ih radi sigurne implementacije.

PostgreSQL ALTER TABLE

ล to je ALTER TABLE u PostgreSQL?

The ALTER TABLE Naredba se koristi za promjenu strukture PostgreSQL tablica. To je naredba koja se koristi za promjenu stupaca tablice ili samog naziva tablice, bez uklanjanjaping i ponovno stvaranje objekta.

Sintaksa

Ovdje je sintaksa za PostgreSQL Naredba ALTER TABLE:

ALTER TABLE table-name action;

Parametar naziva tablice je naziv tablice koju trebate promijeniti. Parametar akcije je radnja koju trebate izvrลกiti, kao ลกto je promjena naziva stupca ili promjena tipa podataka stupca.

Description

Naredba ALTER TABLE mijenja definiciju postojeฤ‡e tablice. Zauzima sljedeฤ‡e podforme:

  • DODAJ STUPAC: ovo koristi sliฤnu sintaksu kao naredba CREATE TABLE za dodavanje novog stupca u tablicu.
  • ISPUSTI STUPAC: za padping stupac tablice. Ograniฤenja i indeksi nametnuti stupcima takoฤ‘er ฤ‡e biti uklonjeni.
  • POSTAVITE/ISPUSTI ZADANO: koristi se za postavljanje ili uklanjanje zadane vrijednosti za stupac. Promjena se primjenjuje samo na sljedeฤ‡e INSERT izjave.
  • SET/DROP NIJE NULL: mijenja hoฤ‡e li stupac dopuลกtati null vrijednosti ili ne.
  • POSTAVI STATISTIKE: za postavljanje cilja prikupljanja statistike za svaki stupac za operacije ANALIZE.
  • SET SKLAD: za postavljanje naฤina pohrane za stupac, bilo da je u liniji ili u dodatnoj tablici.
  • SET BEZ OIDA: koristi se za uklanjanje starog OID stupca tablice.
  • PREIMENOVATI: za promjenu naziva tablice ili naziva stupca.
  • DODAJte ograniฤenje_tablice: koristi se za dodavanje novog ograniฤenja tablici. Koristi istu sintaksu kao i IZRADI TABELU naredba.
  • KAPI OGRANIฤŒENJE: koristi se za ispuลกtanjeping ograniฤenje tablice.
  • VLASNIK: za promjenu vlasnika tablice, niza, indeksa ili prikaza na odreฤ‘enog korisnika.
  • CLUSTER: za oznaฤavanje tablice koja ฤ‡e se koristiti za buduฤ‡e operacije klastera.

Izmjena stupca

Stupac se moลพe mijenjati na viลกe naฤina. Takve se izmjene vrลกe pomoฤ‡u naredbe ALTER TABLE. Razmotrimo ih u nastavku.

Dodavanje novog stupca

Za dodavanje novog stupca u a PostgreSQL tablice, naredba ALTER TABLE se koristi sa sljedeฤ‡om sintaksom:

ALTER TABLE table-name
  ADD new-column-name column-definition;

Naziv tablice je naziv tablice koju treba izmijeniti. Naziv novog stupca je naziv novog stupca koji treba dodati. Definicija stupca je tip podataka novog stupca. Pogledajte tablicu Knjiga prikazanu u nastavku:

PostgreSQL Primjer IZMJENE TABLICE

Tablica ima dva stupca, id i name. Moramo dodati novi stupac u tablicu i dati mu naziv author. Samo pokrenite sljedeฤ‡u naredbu:

ALTER TABLE Book
  ADD author VARCHAR(50);

Nakon pokretanja gornje naredbe, tablica knjiga je sada sljedeฤ‡a:

PostgreSQL Primjer IZMJENE TABLICE

Novi je stupac uspjeลกno dodan.

Promjena naziva stupca tablice

Moลพemo koristiti naredbu ALTER TABLE da promijenimo naziv stupca. U ovom sluฤaju, naredba se koristi sa sljedeฤ‡om sintaksom:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

Naziv tablice je naziv tablice ฤiji se stupac preimenuje. Stari naziv je trenutni naziv stupca, a novi naziv je novi naziv stupca. Razmotrimo tablicu Book prikazanu u nastavku:

Rezervirati:

PostgreSQL Primjer IZMJENE TABLICE

Moramo promijeniti naziv stupca autor u book_author. Evo naredbe:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Nakon pokretanja naredbe moลพemo vidjeti strukturu tablice:

PostgreSQL Primjer IZMJENE TABLICE

Naziv stupca je uspjeลกno promijenjen.

Postavljanje zadane vrijednosti za stupac

Moลพemo postaviti zadanu vrijednost za stupac tako da ฤ‡e se ฤak i kada ne navedete vrijednost za taj stupac tijekom INSERT operacija, koristiti zadana vrijednost. U tom sluฤaju, naredba ALTER TABLE moลพe se koristiti sa sljedeฤ‡om sintaksom:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Naziv tablice je naziv tablice ฤiji stupac treba izmijeniti. Naziv stupca je naziv stupca ฤija se zadana vrijednost treba postaviti, a vrijednost je zadana vrijednost za stupac. Razmotrimo tablicu Book danu u nastavku:

PostgreSQL Primjer IZMJENE TABLICE

Moramo postaviti zadanu vrijednost za stupac book_author. Moลพemo pokrenuti sljedeฤ‡u naredbu:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Sada u tablicu ubacimo redak:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Imajte na umu da smo umetnuli vrijednosti samo za dva stupca, id i name. Meฤ‘utim, za stupac book_author koriลกtena je zadana vrijednost:

PostgreSQL Primjer IZMJENE TABLICE

Dodavanje ograniฤenja provjere

Ograniฤenje provjere pomaลพe u potvrฤ‘ivanju zapisa koji se umeฤ‡u u tablicu. To moลพemo uฤiniti kombiniranjem naredbe ALTER TABLE s naredbom ADD CHECK. Sintaksa:

ALTER TABLE table-name ADD CHECK expression;

Naziv tablice je naziv tablice koju treba promijeniti, a izraz je ograniฤenje koje treba nametnuti stupcu tablice. Izmijenimo stupac book_author tablice Book tako da prihvaฤ‡a samo vrijednosti Nicholas i Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Sada pokuลกajmo umetnuti vrijednost koja nije Nicholas ili Samuel u stupac book_author tablice Book:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

Izjava ฤ‡e vratiti sljedeฤ‡u pogreลกku:

PostgreSQL Primjer IZMJENE TABLICE

Operacija umetanja nije uspjela jer smo prekrลกili ograniฤenje provjere.

Promjena naziva tablice

Evo sintakse za naredbu ALTER TABLE za preimenovanje tablice:

ALTER TABLE table-name
  RENAME TO new-table-name;

Naziv tablice je trenutni naziv tablice, a novi naziv tablice je novi naziv koji ฤ‡e se dodijeliti tablici. Na primjer, promijenimo naziv tablice Knjiga u Knjige:

ALTER TABLE Book
  RENAME TO Books;

Koristeฤ‡i pgAdmin

Do sada su se radnje izvrลกavale iz SQL ljuske. Sada pogledajmo kako se iste radnje mogu vizualno izvesti pomoฤ‡u pgAdmin-a.

Dodavanje novog stupca

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

PostgreSQL Primjer IZMJENE TABLICE

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

ALTER TABLE Book
  ADD author VARCHAR(50);

Korak 4) Pritisnite gumb Izvrลกi.

PostgreSQL Primjer IZMJENE TABLICE

Korak 5) Da biste provjerili je li stupac dodan, uฤinite sljedeฤ‡e:

  1. Kliknite Baze podataka na lijevoj navigaciji.
  2. Proลกiri Demo.
  3. Proลกirite sheme.
  4. Proลกiri javno.
  5. Proลกiri tablice.
  6. Proลกiri knjigu.
  7. Proลกiri stupce.

PostgreSQL Primjer IZMJENE TABLICE

Stupac je trebao biti dodan, kao ลกto je prikazano u nastavku:

PostgreSQL Primjer IZMJENE TABLICE

Promjena naziva stupca tablice

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

PostgreSQL Primjer IZMJENE TABLICE

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Korak 4) Pritisnite gumb Izvrลกi.

PostgreSQL Primjer IZMJENE TABLICE

Korak 5) Da biste provjerili je li promjena bila uspjeลกna, proลกirite stupce tablice knjiga kao i prije:

PostgreSQL Primjer IZMJENE TABLICE

Stupci bi sada trebali biti sljedeฤ‡i:

PostgreSQL Primjer IZMJENE TABLICE

Stupac je uspjeลกno promijenjen.

Postavljanje zadane vrijednosti za stupac

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

PostgreSQL Primjer IZMJENE TABLICE

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Korak 4) Pritisnite gumb Izvrลกi.

PostgreSQL Primjer IZMJENE TABLICE

Korak 5) Za testiranje pokrenite sljedeฤ‡u naredbu u ureฤ‘ivaฤu upita:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Korak 6) Sada moลพemo postaviti upit tablici da provjerimo je li zadana vrijednost umetnuta u stupac book_author:

PostgreSQL Primjer IZMJENE TABLICE

Dodavanje ograniฤenja provjere

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

PostgreSQL Primjer IZMJENE TABLICE

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Korak 4) Pritisnite gumb Izvrลกi.

PostgreSQL Primjer IZMJENE TABLICE

Korak 5) Da biste to testirali, upiลกite sljedeฤ‡i upit u ureฤ‘ivaฤ upita i kliknite gumb Izvrลกi:

INSERT INTO Book
VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

PostgreSQL Primjer IZMJENE TABLICE

Vratit ฤ‡e sljedeฤ‡e:

PostgreSQL Primjer IZMJENE TABLICE

Promjena naziva tablice

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2)

  1. Na navigacijskoj traci s lijeve strane kliknite Baze podataka.
  2. Pritisnite Demo.

PostgreSQL Primjer IZMJENE TABLICE

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

ALTER TABLE Book
  RENAME TO Books;

Korak 4) Pritisnite gumb Izvrลกi.

PostgreSQL Primjer IZMJENE TABLICE

Korak 5) Da biste provjerili je li tablica preimenovana, proลกirite Baze podataka > Demo > Sheme > Javno > Tablice:

PostgreSQL Primjer IZMJENE TABLICE

Tablica je uspjeลกno preimenovana.

Preuzmite bazu podataka koriลกtenu u ovom vodiฤu

Pitanja i odgovori

Koristite ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. Dodajte USING klauzulu kada je potrebno pretvoriti vrijednosti, na primjer ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL prepisuje stupac i provjerava odgovaraju li postojeฤ‡i podaci novom tipu.

Samo ako je zadana vrijednost nestabilna. Buduฤ‡i da PostgreSQL 11, DODAJ STUPAC s konstantnom zadanom vrijednoลกฤ‡u trenutaฤno aลพurira katalog bez prepisivanja redaka. Zadana vrijednost koja poziva funkciju i dalje prisiljava prepisivanje cijele tablice i jaฤe zakljuฤavanje.

Ne. PostgreSQL Ne moลพete mijenjati postojeฤ‡e ograniฤenje. Uklonite postojeฤ‡e s DROP CONSTRAINT, a zatim dodajte ispravljeno s ADD CONSTRAINT. Oba naredbe omotajte u transakciju tako da tablica nikada ne ostane bez pravila.

Navedite nekoliko radnji odvojenih zarezima: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL primjenjuje svaku promjenu u jednom prolazu, ลกto je brลพe i odrลพava tablicu konzistentnom.

Koristite ALTER TABLE table_name ADD PRIMARY KEY (stupac) ili ADD CONSTRAINT pk_name PRIMARY KEY (stupac). Stupac mora sadrลพavati jedinstvene, nenull vrijednosti; PostgreSQL automatski gradi podrลพavajuฤ‡i jedinstveni indeks kada se kljuฤ kreira.

RENAME aลพurira samo naziv tablice u sistemskom katalogu. Pohranjeni retci, indeksi i ograniฤenja ostaju na mjestu i nisu pogoฤ‘eni. Prikazi ili funkcije koje referenciraju stari naziv moลพda ฤ‡e i dalje trebati aลพurirati nakon toga.

AI asistenti izraฤ‘uju skripte ALTER TABLE iz opisane promjene, ispravno redoslijeduju korake ADD, RENAME i constraint te dodaju klauzule USING za pretvaranje tipova. Takoฤ‘er oznaฤavaju operacije koje prepisuju velike tablice ili drลพe teลกke brave.

Da. AI Copilot pregledava migraciju, upozorava na zakljuฤavanje ili prepisivanje cijele tablice, predlaลพe grupiranje ili istodobne izgradnje indeksa i preporuฤuje prelamanje.ping promjene u transakciji, ลกto aลพuriranja sheme ฤini sigurnijima za implementaciju.

Saลพmite ovu objavu uz: