PostgreSQL ALTER TABLE: Lisa ja nimeta veerg ümber

⚡ Nutikas kokkuvõte

PostgreSQL Käsk ALTER TABLE muudab olemasoleva tabeli struktuuri, võimaldades teil veerge lisada või eemaldada, veergu või tervet tabelit ümber nimetada, vaikeväärtusi määrata ja kontrollpiiranguid lisada ilma objekti uuesti loomata.

  • 🧱 süntaksit: Toiming ALTER TABLE tabeli-nimi teeb iga lause kohta ühe struktuurimuudatuse.
  • Lisa veerg: ADD veeru-nimi andmetüüp lisab tabelisse uue veeru.
  • ✏️ Nimeta ümber: NIMETA VEERG ÜMBER ja NIMETA ÜMBER veeru või tabeli nime muutmiseks.
  • ⚙️ Vaikimisi väärtus: ALTER COLUMN SET DEFAULT annab väärtuse tulevastele INSERT ridadele.
  • 🛡️ Kontrolli piirangut: ADD CHECK valideerib uued andmed ja lükkab tagasi väärtused, mis reeglile ei vasta.
  • 🤖 AI migratsioonid: Tehisintellekti assistendid koostavad ALTER TABLE skripte ja vaatavad need ohutuks juurutamiseks üle.

PostgreSQL ALTER TABLE

Mis on ALTER TABLE? PostgreSQL?

. ALTER TABLE käsku kasutatakse struktuuri muutmiseks PostgreSQL tabel. See on käsk, mida kasutatakse tabeli veergude või tabeli enda nime muutmiseks ilma käsku "drop" muutmata.ping ja objekti taasloomine.

Süntaks

Siin on süntaks PostgreSQL ALTER TABLE käsk:

ALTER TABLE table-name action;

Parameeter „table-name” on tabeli nimi, mida peate muutma. Parameeter „action” on toiming, mida peate tegema, näiteks veeru nime või veeru andmetüübi muutmine.

Kirjeldus

Käsk ALTER TABLE muudab olemasoleva tabeli definitsiooni. See võtab järgmised alamvormid:

  • LISA VEERG: see kasutab tabelisse uue veeru lisamiseks sarnast süntaksit nagu käsk CREATE TABLE.
  • KULKU VEERG: tilkade jaoksping tabeli veerg. Veergudele kehtestatud piirangud ja indeksid eemaldatakse samuti.
  • SET/DOP vaikesäte: kasutatakse veeru vaikeväärtuse määramiseks või eemaldamiseks. Muudatus kehtib ainult järgnevatele INSERT avaldused.
  • SET/Drop NOT NULL: muudab, kas veerg lubab tühiväärtusi või mitte.
  • STATISTIKA KOHALDAMIST: iga veeru statistika kogumise eesmärgi määramiseks ANALYZE-toimingute jaoks.
  • MÄÄRATA SALVELU: veeru salvestusrežiimi määramiseks, olgu see siis rea sees või lisatabelis.
  • MÄÄRA ILMA OIIDIDETA: kasutatakse tabeli vana OID-veeru eemaldamiseks.
  • RENAME: tabeli või veeru nime muutmiseks.
  • LISA tabeli_piirang: kasutatakse tabelile uue piirangu lisamiseks. See kasutab sama süntaksit nagu LOE TABEL käsk
  • VÄHENEMISE PIIRAMINE: kasutatakse langetamiseksping tabeli piirang.
  • OMANIK: tabeli, jada, indeksi või vaate omaniku muutmiseks kindlale kasutajale.
  • KLASTER: tulevaste klastritoimingute jaoks kasutatava tabeli märkimiseks.

Veeru muutmine

Veergu saab muuta mitmel viisil. Selliseid muudatusi tehakse käsu ALTER TABLE abil. Vaatleme neid allpool.

Uue veeru lisamine

Uue veeru lisamiseks a PostgreSQL tabelis kasutatakse käsku ALTER TABLE järgmise süntaksiga:

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

Tabeli nimi on muudetava tabeli nimi. Uue veeru nimi on lisatava uue veeru nimi. Veeru definitsioon on andmetüüp uue veeru kohta. Vaadake allpool olevat raamatute tabelit:

PostgreSQL ALTER TABLE'i näide

Tabelis on kaks veergu, id ja nimi. Peame tabelisse lisama uue veeru ja andma sellele nimeks autor. Selleks käivitage järgmine käsk:

ALTER TABLE Book
  ADD author VARCHAR(50);

Pärast ülaltoodud käsu käivitamist on raamatutabel nüüd järgmine:

PostgreSQL ALTER TABLE'i näide

Uue veeru lisamine õnnestus.

Tabeli veeru ümbernimetamine

Veeru nime muutmiseks saame kasutada käsku ALTER TABLE. Sel juhul kasutatakse käsku järgmise süntaksiga:

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

Tabeli „nimi” on selle tabeli nimi, mille veergu ümber nimetatakse. Vana „nimi” on veeru praegune nimi ja uus „nimi” on veeru uus nimi. Vaatleme allolevat tabelit Book:

Raamat:

PostgreSQL ALTER TABLE'i näide

Peame veeru autori nime muutma nimeks book_author. Siin on käsk:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Pärast käsu käivitamist saame vaadata tabeli struktuuri:

PostgreSQL ALTER TABLE'i näide

Veeru nime muutmine õnnestus.

Veeru vaikeväärtuse määramine

Me saame määrata veerule vaikeväärtuse, nii et isegi kui te INSERT-toimingute ajal sellele veerule väärtust ei määra, kasutatakse vaikeväärtust. Sellisel juhul saab käsku ALTER TABLE kasutada järgmise süntaksiga:

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

Tabeli nimi on selle tabeli nimi, mille veergu muudetakse. Veeru nimi on selle veeru nimi, mille vaikeväärtust soovitakse määrata, ja väärtus on veeru vaikeväärtus. Vaatleme allolevat raamatu tabelit:

PostgreSQL ALTER TABLE'i näide

Peame määrama veeru book_author vaikeväärtuse. Saame käivitada järgmise käsu:

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

Nüüd lisame tabelisse rea:

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

Pane tähele, et lisasime väärtused ainult kahe veeru jaoks, id ja name. Book_author veeru jaoks on aga kasutatud vaikeväärtust:

PostgreSQL ALTER TABLE'i näide

Kontrollipiirangu lisamine

Kontrollpiirang aitab kinnitada tabelisse lisatavaid kirjeid. Seda saame teha, kombineerides käsu ALTER TABLE käsuga ADD CHECK. Süntaks:

ALTER TABLE table-name ADD CHECK expression;

Tabeli nimi on muudetava tabeli nimi ja avaldis on piirang, mis tabeli veerule kehtestatakse. Muudame Book tabeli veergu book_author nii, et see aktsepteeriks ainult väärtusi Nicholas ja Samuel:

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

Proovime nüüd sisestada tabeli Book_author veergu muu väärtuse kui Nicholas või Samuel:

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

Avaldus tagastab järgmise vea:

PostgreSQL ALTER TABLE'i näide

Sisestamistoiming nurjus, kuna rikkusime kontrollipiirangut.

Tabeli ümbernimetamine

Siin on tabeli ümbernimetamise käsu ALTER TABLE süntaks:

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

„tabeli nimi” on tabeli praegune nimi ja „uus tabeli nimi” on tabelile määratav uus nimi. Näiteks muudame „Raamatu” tabeli nimeks „Raamatud”:

ALTER TABLE Book
  RENAME TO Books;

pgAdmini kasutamine

Siiani on toiminguid käivitatud SQL-kestast. Nüüd vaatame, kuidas neid samu toiminguid saab visuaalselt teha pgAdmini abil.

Uue veeru lisamine

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL ALTER TABLE'i näide

Step 3) Sisestage päring päringuredaktorisse:

ALTER TABLE Book
  ADD author VARCHAR(50);

Step 4) Klõpsake nuppu Käivita.

PostgreSQL ALTER TABLE'i näide

Step 5) Veerg lisamise kontrollimiseks tehke järgmist.

  1. Klõpsake vasakpoolses navigeerimisribas valikul Andmebaasid.
  2. Laienda Demo.
  3. Laiendage Skeemid.
  4. Laiendage Avalik.
  5. Laiendage tabeleid.
  6. Laienda raamatut.
  7. Laienda veerud.

PostgreSQL ALTER TABLE'i näide

Veerg oleks tulnud lisada, nagu allpool näidatud:

PostgreSQL ALTER TABLE'i näide

Tabeli veeru ümbernimetamine

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL ALTER TABLE'i näide

Step 3) Sisestage päring päringuredaktorisse:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Step 4) Klõpsake nuppu Käivita.

PostgreSQL ALTER TABLE'i näide

Step 5) Muudatuse õnnestumise kontrollimiseks laiendage raamatute tabeli veerge nagu varem:

PostgreSQL ALTER TABLE'i näide

Veerud peaksid nüüd olema järgmised:

PostgreSQL ALTER TABLE'i näide

Veeru muutmine õnnestus.

Veeru vaikeväärtuse määramine

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL ALTER TABLE'i näide

Step 3) Sisestage päring päringuredaktorisse:

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

Step 4) Klõpsake nuppu Käivita.

PostgreSQL ALTER TABLE'i näide

Step 5) Testimiseks käivitage päringuredaktoris järgmine käsk:

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

Step 6) Nüüd saame teha tabelist päringu, et kontrollida, kas vaikeväärtus on sisestatud veergu book_author:

PostgreSQL ALTER TABLE'i näide

Kontrollipiirangu lisamine

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL ALTER TABLE'i näide

Step 3) Sisestage päring päringuredaktorisse:

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

Step 4) Klõpsake nuppu Käivita.

PostgreSQL ALTER TABLE'i näide

Step 5) Selle testimiseks tippige päringuredaktorisse järgmine päring ja klõpsake nuppu Käivita:

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

PostgreSQL ALTER TABLE'i näide

See tagastab järgmise:

PostgreSQL ALTER TABLE'i näide

Tabeli ümbernimetamine

Step 1) Logige sisse oma pgAdmini kontole.

Step 2)

  1. Klõpsake vasakpoolsel navigeerimisribal valikul Andmebaasid.
  2. Klõpsake Demo.

PostgreSQL ALTER TABLE'i näide

Step 3) Sisestage päring päringuredaktorisse:

ALTER TABLE Book
  RENAME TO Books;

Step 4) Klõpsake nuppu Käivita.

PostgreSQL ALTER TABLE'i näide

Step 5) Selleks, et kontrollida, kas tabel on ümber nimetatud, laiendage Andmebaasid > Demo > Skeemid > Avalik > Tabelid:

PostgreSQL ALTER TABLE'i näide

Tabeli ümbernimetamine õnnestus.

Laadige alla selles õpetuses kasutatud andmebaas

KKK

Kasuta ALTER TABLE tabeli_nimi ALTER COLUMN veeru_nimi TYPE uus_tüüp. Lisa USING-klausel, kui väärtusi on vaja teisendada, näiteks ALTER COLUMN hind TYPE numeric USING hind::numbriline PostgreSQL kirjutab veeru ümber ja kontrollib, kas olemasolevad andmed sobivad uue tüübiga.

Ainult siis, kui maksejõuetus on volatiilne. Kuna PostgreSQL 11, ADD COLUMN konstantse vaikeväärtusega uuendab kataloogi koheselt ilma ridu ümber kirjutamata. Funktsiooni kutsuv vaikeväärtus sunnib ikkagi kogu tabelit ümber kirjutama ja tugevamat lukustust rakendama.

Ei. PostgreSQL Kehtivat piirangut ei saa muuta. Eemalda olemasolev piirangu käsuga DROP CONSTRAINT ja lisa seejärel parandatud piirangu käsuga ADD CONSTRAINT. Mähki mõlemad laused tehingusse, et tabel ei jääks kunagi reeglita.

Loetle mitu komadega eraldatud toimingut: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL rakendab iga muudatuse ühe korraga, mis on kiirem ja hoiab tabeli ühtlasena.

Kasutage käsku ALTER TABLE tabeli_nimi ADD PRIMARY KEY (veerg) või ADD CONSTRAINT tabeli_nimi PRIMARY KEY (veerg). Veerg peab sisaldama unikaalseid, mitte-nullväärtusi; PostgreSQL loob võtme loomisel automaatselt toetava unikaalse indeksi.

Käsk RENAME uuendab ainult tabeli nime süsteemikataloogis. Salvestatud read, indeksid ja piirangud jäävad oma kohale ja jäävad samaks. Vaated või funktsioonid, mis viitavad vanale nimele, võivad hiljem siiski uuendamist vajada.

Tehisintellekti assistendid koostavad kirjeldatud muudatuse põhjal ALTER TABLE skripte, järjestavad ADD, RENAME ja piirangute sammud õigesti ning lisavad tüübimuunduste jaoks USING-klausleid. Samuti märgistavad nad toiminguid, mis kirjutavad ümber suuri tabeleid või hoiavad kinni rasketes lukkudes.

Jah. Tehisintellekti kopilot vaatab migratsiooni üle, hoiatab lukustamise või täieliku tabeli ümberkirjutamise eest, soovitab pakkimist või samaaegset indeksi loomist ning soovitab murdmist.ping muudatused tehingus, muutes skeemi uuenduste juurutamise turvalisemaks.

Võta see postitus kokku järgmiselt: