Mengganti Nama Kolom Tanpa Henti
Tambahkan kolom baru, tulis ke keduanya, isi data lama, alihkan pembacaan, hapus yang lama — pola standar penggantian nama tanpa henti
Mengganti Nama Kolom Tanpa Henti adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Pendekatan Naif Gagal
ALTER TABLE t RENAME COLUMN a TO b; hanya mengubah metadata — prosesnya cepat. Namun aplikasi mengharapkan kolom "a"; setelah penggantian nama, setiap query yang membaca "a" akan gagal.
Strategi: Perluas → Migrasikan → Sederhanakan
Pola baku tanpa waktu henti:
- Perluas — tambahkan kolom baru tanpa menghapus kolom lama
- Buat aplikasi menulis ke keduanya untuk sementara
- Migrasikan — isi data historis ke kolom baru
- Alihkan pembacaan ke kolom baru
- Sederhanakan — hapus kolom lama
Langkah demi Langkah: Mengganti Nama user_name → full_name
Panduan terperinci:
Langkah 1 — Tambahkan Kolom Baru
Daring, hanya metadata pada PG 11+ dengan nilai bawaan konstan:
ALTER TABLE users ADD COLUMN full_name VARCHAR(100);Langkah 2 — Penulisan Ganda
Gunakan kode yang menulis ke KEDUA kolom:
// App writes to both:
UPDATE users SET user_name = $1, full_name = $1 WHERE id = $2;
INSERT INTO users (..., user_name, full_name) VALUES (..., $name, $name);Langkah 3 — Isi Data Lama
Salin data historis dalam beberapa kelompok:
UPDATE users SET full_name = user_name
WHERE full_name IS NULL
AND id IN (
SELECT id FROM users WHERE full_name IS NULL LIMIT 10000
);
-- Run in a loop until 0 rows affected.Langkah 4 — Tambahkan NOT NULL (Daring)
Setelah pengisian data lama selesai, terapkan NOT NULL dengan aman:
ALTER TABLE users
ADD CONSTRAINT fn_not_null CHECK (full_name IS NOT NULL) NOT VALID;
ALTER TABLE users VALIDATE CONSTRAINT fn_not_null;
ALTER TABLE users ALTER COLUMN full_name SET NOT NULL;
ALTER TABLE users DROP CONSTRAINT fn_not_null;Langkah 5 — Alihkan Pembacaan
Gunakan kode yang membaca full_name, bukan user_name.
Langkah 6 — Hentikan Penulisan Ganda
Gunakan kode yang hanya menulis ke full_name.
Langkah 7 — Hapus Kolom Lama
Daring, hanya metadata:
ALTER TABLE users DROP COLUMN user_name;Kompromi: Waktu dan Kompleksitas
Penggantian nama sederhana berubah menjadi 4–7 penerapan selama berhari-hari atau berminggu-minggu. Untuk sistem produksi yang tidak sederhana, inilah satu-satunya cara yang aman.
Mengganti Nama Tabel
Polanya serupa, tetapi lebih sulit. Gunakan VIEW sebagai alias sementara:
ALTER TABLE old_name RENAME TO new_name;
CREATE VIEW old_name AS SELECT * FROM new_name;
-- Deploy new code. Then drop the view.Rangkuman
Penggantian nama kolom tanpa waktu henti mengikuti pola perluas → migrasikan → sederhanakan.
- Tambahkan kolom baru
- Lakukan penulisan ganda
- Isi data lama dalam beberapa kelompok
- Alihkan pembacaan
- Hentikan penulisan ke kolom lama
- Hapus kolom lama
Pemeriksaan Singkat
Fase apa yang datang SEGERA setelah menerapkan penulisan ganda ke kolom lama dan baru?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengganti Nama Kolom Tanpa Henti” gratis?
Ya — teks lengkap “Mengganti Nama Kolom Tanpa Henti” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengganti Nama Kolom Tanpa Henti”?
Tambahkan kolom baru, tulis ke keduanya, isi data lama, alihkan pembacaan, hapus yang lama — pola standar penggantian nama tanpa henti Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Mengganti Nama Kolom Tanpa Henti” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Migrasi Daring: Mengapa ALTER TABLE Mengunci
- Indeks Konkuren (CREATE INDEX CONCURRENTLY)
- Mengganti Nama Kolom Tanpa Henti
- Alat: Flyway, Liquibase, Sqitch