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: