PostgreSQL ALTER TABLE: Tambah & Ganti Nama Kolom

โšก Ringkasan Cerdas

PostgreSQL Perintah ALTER TABLE mengubah struktur tabel yang sudah ada, memungkinkan Anda untuk menambah atau menghapus kolom, mengganti nama kolom atau seluruh tabel, mengatur nilai default, dan melampirkan batasan pemeriksaan tanpa membuat ulang objek tersebut.

  • ๐Ÿงฑ sintaks: Perintah ALTER TABLE table-name melakukan satu perubahan struktural per pernyataan.
  • โž• Tambahkan Kolom: Perintah ADD column-name data-type menambahkan kolom baru ke tabel.
  • ๏ธ Ganti nama: RENAME COLUMN dan RENAME TO mengubah nama kolom atau nama tabel.
  • โš™๏ธ Nilai Default: Perintah ALTER COLUMN SET DEFAULT memberikan nilai untuk baris INSERT di masa mendatang.
  • ๐Ÿ›ก๏ธ Periksa Batasan: ADD CHECK memvalidasi data baru dan menolak nilai yang tidak memenuhi aturan.
  • ๐Ÿค– Migrasi AI: Asisten AI membuat draf skrip ALTER TABLE dan meninjau skrip tersebut untuk memastikan penerapannya yang aman.

PostgreSQL ALTER TABEL

Apa itu ALTER TABLE? PostgreSQL?

The ALTER TABEL Perintah digunakan untuk mengubah struktur suatu PostgreSQL Perintah ini digunakan untuk mengubah kolom tabel atau nama tabel itu sendiri, tanpa menggunakan perintah drop.ping dan membuat ulang objek tersebut.

Sintaksis

Berikut adalah sintaks untuk PostgreSQL Perintah ALTER TABLE:

ALTER TABLE table-name action;

Parameter `table-name` adalah nama tabel yang perlu Anda ubah. Parameter `action` adalah tindakan yang perlu Anda lakukan, seperti mengubah nama kolom atau mengubah tipe data kolom.

Deskripsi

Perintah ALTER TABLE mengubah definisi tabel yang sudah ada. Perintah ini mengambil subformulir berikut:

  • TAMBAHKAN KOLOMPerintah ini menggunakan sintaks yang mirip dengan perintah CREATE TABLE untuk menambahkan kolom baru ke dalam tabel.
  • JATUHKAN KOLOM: untuk menjatuhkanping kolom tabel. Batasan dan indeks yang diterapkan pada kolom juga akan dihapus.
  • SETEL/HENTIKAN DEFAULTDigunakan untuk mengatur atau menghapus nilai default untuk suatu kolom. Perubahan hanya berlaku untuk perubahan selanjutnya. pernyataan MASUKKAN.
  • SET/JATUHKAN BUKAN NULL: mengubah apakah suatu kolom mengizinkan nilai null atau tidak.
  • STATISTIK HIMPUNAN: untuk menetapkan target pengumpulan statistik untuk setiap kolom untuk operasi ANALYZE.
  • SETEL PENYIMPANAN: untuk mengatur mode penyimpanan untuk sebuah kolom, baik secara inline maupun dalam tabel tambahan.
  • SET TANPA OIDDigunakan untuk menghapus kolom OID lama dari tabel.
  • RENAME: untuk mengubah nama tabel atau nama kolom.
  • TAMBAHKAN table_constraintDigunakan untuk menambahkan batasan baru ke tabel. Menggunakan sintaks yang sama dengan BUAT TABEL perintah.
  • BATAS JATUH: digunakan untuk menjatuhkanping batasan tabel.
  • PEMILIK: untuk mengubah pemilik tabel, urutan, indeks, atau tampilan ke pengguna tertentu.
  • KLASTER: untuk menandai tabel yang akan digunakan untuk operasi klaster di masa mendatang.

Memodifikasi Kolom

Suatu kolom dapat dimodifikasi dengan berbagai cara. Modifikasi tersebut dilakukan menggunakan perintah ALTER TABLE. Mari kita bahas hal ini di bawah.

Menambahkan Kolom Baru

Untuk menambahkan kolom baru ke a PostgreSQL tabel, perintah ALTER TABLE digunakan dengan sintaks berikut:

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

Nama tabel adalah nama tabel yang akan dimodifikasi. Nama kolom baru adalah nama kolom baru yang akan ditambahkan. Definisi kolom adalah tipe data dari kolom baru. Lihat tabel Buku yang ditunjukkan di bawah ini:

PostgreSQL Contoh ALTER TABLE

Tabel tersebut memiliki dua kolom, id dan nama. Kita perlu menambahkan kolom baru ke tabel dan memberinya nama author. Cukup jalankan perintah berikut:

ALTER TABLE Book
  ADD author VARCHAR(50);

Setelah menjalankan perintah di atas, tabel Book sekarang menjadi seperti berikut:

PostgreSQL Contoh ALTER TABLE

Kolom baru berhasil ditambahkan.

Mengganti Nama Kolom Tabel

Kita dapat menggunakan perintah ALTER TABLE untuk mengubah nama kolom. Dalam kasus ini, perintah tersebut digunakan dengan sintaks berikut:

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

Nama tabel adalah nama tabel yang kolomnya akan diganti namanya. Nama lama adalah nama kolom saat ini, dan nama baru adalah nama kolom yang baru. Perhatikan tabel Buku yang ditunjukkan di bawah ini:

Book:

PostgreSQL Contoh ALTER TABLE

Kita perlu mengubah nama kolom author menjadi book_author. Berikut perintahnya:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Setelah menjalankan perintah, kita dapat melihat struktur tabel:

PostgreSQL Contoh ALTER TABLE

Nama kolom berhasil diubah.

Menetapkan Nilai Default untuk Kolom

Kita dapat menetapkan nilai default untuk sebuah kolom sehingga meskipun Anda tidak menentukan nilai untuk kolom tersebut selama operasi INSERT, nilai default akan digunakan. Dalam hal ini, perintah ALTER TABLE dapat digunakan dengan sintaks berikut:

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

Nama tabel adalah nama tabel yang kolomnya akan dimodifikasi. Nama kolom adalah nama kolom yang nilai default-nya akan diatur, dan nilainya adalah nilai default untuk kolom tersebut. Perhatikan tabel Buku yang diberikan di bawah ini:

PostgreSQL Contoh ALTER TABLE

Kita perlu menetapkan nilai default untuk kolom book_author. Kita dapat menjalankan perintah berikut:

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

Sekarang, mari kita masukkan baris ke dalam tabel:

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

Perhatikan bahwa kami hanya memasukkan nilai untuk dua kolom, id dan name. Namun, nilai default telah digunakan untuk kolom book_author:

PostgreSQL Contoh ALTER TABLE

Menambahkan Batasan Cek

Batasan pemeriksaan membantu memvalidasi catatan yang dimasukkan ke dalam tabel. Kita dapat melakukannya dengan menggabungkan perintah ALTER TABLE dengan pernyataan ADD CHECK. Sintaksis:

ALTER TABLE table-name ADD CHECK expression;

Nama tabel adalah nama tabel yang akan diubah, dan ekspresi adalah batasan yang akan diterapkan pada kolom tabel. Mari kita ubah kolom book_author pada tabel Book sehingga hanya menerima nilai Nicholas dan Samuel:

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

Sekarang, mari kita coba memasukkan nilai selain Nicholas atau Samuel ke dalam kolom book_author pada tabel Book:

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

Pernyataan tersebut akan mengembalikan kesalahan berikut:

PostgreSQL Contoh ALTER TABLE

Operasi penyisipan gagal karena kami melanggar batasan pemeriksaan.

Mengganti Nama Tabel

Berikut adalah sintaks perintah ALTER TABLE untuk mengganti nama tabel:

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

Nama tabel adalah nama tabel saat ini, dan nama tabel baru adalah nama baru yang akan diberikan kepada tabel tersebut. Misalnya, mari kita ubah nama tabel Buku menjadi Buku-buku:

ALTER TABLE Book
  RENAME TO Books;

Menggunakan pgAdmin

Sejauh ini tindakan-tindakan tersebut telah dijalankan dari shell SQL. Sekarang mari kita lihat bagaimana tindakan-tindakan yang sama dapat dilakukan secara visual menggunakan pgAdmin.

Menambahkan Kolom Baru

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

PostgreSQL Contoh ALTER TABLE

Langkah 3) Ketik kueri di editor kueri:

ALTER TABLE Book
  ADD author VARCHAR(50);

Langkah 4) Klik tombol Jalankan.

PostgreSQL Contoh ALTER TABLE

Langkah 5) Untuk memeriksa apakah kolom telah ditambahkan, lakukan hal berikut:

  1. Klik Database dari navigasi kiri.
  2. Perluas Demo.
  3. Perluas Skema.
  4. Perluas Publik.
  5. Perluas Tabel.
  6. Perluas buku.
  7. Perluas Kolom.

PostgreSQL Contoh ALTER TABLE

Kolom seharusnya ditambahkan, seperti yang ditunjukkan di bawah ini:

PostgreSQL Contoh ALTER TABLE

Mengganti Nama Kolom Tabel

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

PostgreSQL Contoh ALTER TABLE

Langkah 3) Ketik kueri di editor kueri:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Langkah 4) Klik tombol Jalankan.

PostgreSQL Contoh ALTER TABLE

Langkah 5) Untuk memeriksa apakah perubahan berhasil, perluas kolom tabel buku seperti sebelumnya:

PostgreSQL Contoh ALTER TABLE

Kolomnya sekarang harus seperti berikut:

PostgreSQL Contoh ALTER TABLE

Kolom berhasil diubah.

Menetapkan Nilai Default untuk Kolom

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

PostgreSQL Contoh ALTER TABLE

Langkah 3) Ketik kueri di editor kueri:

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

Langkah 4) Klik tombol Jalankan.

PostgreSQL Contoh ALTER TABLE

Langkah 5) Untuk menguji, jalankan perintah berikut di editor kueri:

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

Langkah 6) Sekarang, kita dapat menanyakan tabel untuk memeriksa apakah nilai default telah dimasukkan ke dalam kolom book_author:

PostgreSQL Contoh ALTER TABLE

Menambahkan Batasan Cek

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

PostgreSQL Contoh ALTER TABLE

Langkah 3) Ketik kueri di editor kueri:

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

Langkah 4) Klik tombol Jalankan.

PostgreSQL Contoh ALTER TABLE

Langkah 5) Untuk mengujinya, ketik kueri berikut di editor kueri dan klik tombol Eksekusi:

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

PostgreSQL Contoh ALTER TABLE

Ini akan mengembalikan hal berikut:

PostgreSQL Contoh ALTER TABLE

Mengganti Nama Tabel

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

PostgreSQL Contoh ALTER TABLE

Langkah 3) Ketik kueri di editor kueri:

ALTER TABLE Book
  RENAME TO Books;

Langkah 4) Klik tombol Jalankan.

PostgreSQL Contoh ALTER TABLE

Langkah 5) Untuk memeriksa apakah tabel telah diganti namanya, perluas Databases > Demo > Schemas > Public > Tables:

PostgreSQL Contoh ALTER TABLE

Tabel berhasil diubah namanya.

Unduh Database yang digunakan dalam Tutorial ini

Pertanyaan Umum Demo Slot

Gunakan perintah ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. Tambahkan klausa USING jika nilai perlu dikonversi, misalnya ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL Menulis ulang kolom dan memeriksa apakah data yang ada sesuai dengan tipe data baru.

Hanya jika nilai defaultnya adalah volatile. Karena PostgreSQL 11. TAMBAHKAN KOLOM dengan nilai default konstan akan memperbarui katalog secara instan tanpa menulis ulang baris. Nilai default yang memanggil fungsi tetap akan memaksa penulisan ulang tabel secara penuh dan penguncian yang lebih kuat.

Nomor PostgreSQL Tidak dapat mengubah batasan yang sudah ada. Hapus batasan yang ada dengan DROP CONSTRAINT, lalu tambahkan batasan yang telah diperbaiki dengan ADD CONSTRAINT. Bungkus kedua pernyataan tersebut dalam sebuah transaksi agar tabel tidak pernah dibiarkan tanpa aturan tersebut.

Cantumkan beberapa tindakan yang dipisahkan oleh koma: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Menerapkan setiap perubahan dalam satu kali proses, yang lebih cepat dan menjaga konsistensi tabel.

Gunakan perintah ALTER TABLE table_name ADD PRIMARY KEY (column) atau ADD CONSTRAINT pk_name PRIMARY KEY (column). Kolom tersebut harus berisi nilai unik dan tidak boleh null; PostgreSQL Membangun indeks unik pendukung secara otomatis saat kunci dibuat.

Perintah RENAME hanya memperbarui nama tabel dalam katalog sistem. Baris, indeks, dan batasan yang tersimpan tetap ada dan tidak terpengaruh. Tampilan atau fungsi yang merujuk pada nama lama mungkin masih perlu diperbarui setelahnya.

Asisten AI menyusun skrip ALTER TABLE dari perubahan yang dijelaskan, mengatur urutan langkah ADD, RENAME, dan batasan dengan benar, serta menambahkan klausa USING untuk konversi tipe data. Mereka juga menandai operasi yang menulis ulang tabel besar atau menahan penguncian yang berat.

Ya. AI Copilot meninjau migrasi, memperingatkan tentang penguncian atau penulisan ulang tabel penuh, menyarankan pembuatan indeks secara batch atau bersamaan, dan merekomendasikan pembungkus (wrap).ping perubahan dalam sebuah transaksi, membuat pembaruan skema lebih aman untuk diterapkan.

Ringkaslah postingan ini dengan: