Dalam PostgreSQL, kekangan unik atau indeks unik boleh digunakan untuk menentukan keunikan. Walau bagaimanapun, dokumentasi menunjukkan bahawa kaedah pilihan adalah menggunakan sintaks ALTER TABLE ... ADD CONSTRAINT
.
Untuk menggambarkan kesetaraan antara kedua-duanya, pertimbangkan kod berikut:
<code class="language-sql">-- 使用唯一约束 create table foo ( id serial primary key, code integer, label text, constraint foo_uq unique (code, label) ); -- 使用唯一索引 create table foo ( id serial primary key, code integer, label text ); create unique index foo_idx on foo using btree (code, label);</code>
Seperti yang dinyatakan dalam dokumentasi PostgreSQL, kedua-dua kaedah ini adalah setara dari segi fungsi. Kedua-dua kaedah akan menghalang nilai pendua untuk lajur yang ditentukan.
Cara pilihan untuk mentakrifkan kekangan unik adalah melalui sintaks ALTER TABLE ... ADD CONSTRAINT
. Ini dianggap amalan terbaik dan mengikut pendekatan yang disyorkan PostgreSQL. Walaupun menggunakan indeks unik untuk menguatkuasakan keunikan masih berfungsi, ini dianggap sebagai butiran pelaksanaan yang tidak boleh diakses secara langsung.
Dari segi prestasi dan kefungsian, tiada perbezaan praktikal yang ketara antara kedua-dua kaedah. Kedua-dua pilihan menyediakan tahap integriti data dan penguatkuasaan keunikan yang sama.
Walau bagaimanapun, terdapat beberapa perbezaan yang perlu dipertimbangkan:
Walaupun pilihan antara mentakrifkan keunikan menggunakan kekangan unik atau indeks unik akhirnya bergantung kepada gaya dan keutamaan, adalah disyorkan untuk mengikuti pendekatan pilihan PostgreSQL, iaitu menggunakan sintaks ALTER TABLE ... ADD CONSTRAINT
.
Atas ialah kandungan terperinci Kekangan Unik vs. Indeks Unik dalam PostgreSQL: Mana Yang Perlu Anda Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!