Pengenalan
Apabila memfaktorkan semula pangkalan data, adalah penting untuk memastikan objek berkaitan (seperti jujukan dan kekangan) dikemas kini dengan betul bersama-sama dengan nama semula jadual. Artikel ini meneroka nuansa dan garis panduan untuk menamakan semula jadual dengan selamat yang menggunakan lajur kunci utama jujukan dalam PostgreSQL.
Memahami jenis data jujukan
Bertentangan dengan kepercayaan popular, siri bukanlah jenis data yang benar, tetapi kaedah kemudahan untuk mencipta lajur pengecam unik. Di sebalik tabir, PostgreSQL melakukan perkara berikut:
<table_name>_<column_name>_seq
NOT NULL DEFAULT nextval('<sequence_name>')
Namakan semula jadual dan jujukan
Untuk menamakan semula jadual, gunakan perintah ALTER TABLE foo RENAME TO bar
. Walau bagaimanapun, ini tidak menamakan semula urutan yang berkaitan secara automatik. Untuk melakukan ini, laksanakan ALTER SEQUENCE foo_pkey_seq RENAME TO bar_pkey_seq
.
Kesan penamaan semula
Menamakan semula jujukan mengalih keluar klausa DEFAULT nextval()
eksplisit daripada takrifan lajur. Walau bagaimanapun, PostgreSQL memastikan bahawa OID kekal tidak berubah, dengan itu mengekalkan rujukan kepada jujukan.
Nota Concurrency
Menamakan semula objek dalam PostgreSQL melibatkan memperoleh kunci. Jika transaksi lain mempunyai kunci pada objek yang terjejas, operasi penamaan semula menunggu sehingga transaksi tersebut selesai. Oleh itu, adalah disyorkan untuk melakukan penamaan semula semasa tempoh aktiviti yang lebih rendah.
Namakan semula indeks dan kekangan tersirat
Kunci utama secara tersirat mencipta indeks bernama <table_name>_pkey
. Untuk menamakan semula, gunakan ALTER TABLE bar RENAME CONSTRAINT foo_pkey TO bar_pkey
. Selain itu, sebarang indeks yang secara eksplisit merujuk nama jadual boleh dinamakan semula menggunakan ALTER INDEX...RENAME TO...
.
Kesimpulan
Menamakan semula jadual dengan kunci utama jujukan memerlukan pertimbangan teliti terhadap objek yang berkaitan. Dengan mengikuti garis panduan di atas, anda boleh mengemas kini skema pangkalan data anda dengan selamat, memelihara integriti data dan mengekalkan konsistensi. Adalah penting untuk diingat bahawa mengendalikan direktori secara langsung boleh berisiko dan hanya perlu dicuba oleh pentadbir pangkalan data yang berpengalaman.
Atas ialah kandungan terperinci Bagaimana untuk Menamakan Semula Jadual PostgreSQL dengan Kekunci Utama Bersiri dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!