The jawaban dengan Craig Ringer benar. Berikut sedikit info untuk Postgres 9.1 dan yang lebih baru ...
Apakah Ekstensi Tersedia?
Anda hanya dapat menginstal ekstensi jika sudah dibangun untuk instalasi Postgres Anda ( cluster Anda dalam istilah Postgres). Sebagai contoh, saya menemukan ekstensi uuid-ossp disertakan sebagai bagian dari penginstal untuk Mac OS X yang disediakan oleh EnterpriseDB.com. Salah satu dari beberapa lusin ekstensi mungkin tersedia.
Untuk melihat apakah ekstensi uuid-ossp tersedia di cluster Postgres Anda, jalankan SQL ini untuk meminta pg_available_extensions
katalog sistem:
SELECT * FROM pg_available_extensions;
Pasang Ekstensi
Untuk menginstal ekstensi terkait UUID itu , gunakan perintah CREATE EXTENSION seperti yang terlihat dalam SQL ini:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Hati-hati: Saya menemukan karakter MARK KUTIPAN di sekitar nama ekstensi diperlukan, meskipun dokumentasi sebaliknya.
Komite standar SQL atau tim Postgres memilih nama aneh untuk perintah itu. Menurut saya, mereka seharusnya memilih sesuatu seperti "INSTALL EXTENSION" atau "USE EXTENSION".
Verifikasi Instalasi
Anda dapat memverifikasi ekstensi berhasil diinstal dalam database yang diinginkan dengan menjalankan SQL ini untuk meminta pg_extension
katalog sistem:
SELECT * FROM pg_extension;
UUID sebagai nilai default
Untuk info lebih lanjut, lihat Pertanyaan: Nilai default untuk kolom UUID di Postgres
Jalan Lama
Informasi di atas menggunakan fitur Extensions baru yang ditambahkan ke Postgres 9.1. Di versi sebelumnya, kami harus menemukan dan menjalankan skrip dalam file .sql . Fitur Extensions ditambahkan untuk membuat instalasi lebih mudah, memperdagangkan sedikit lebih banyak pekerjaan untuk pencipta ekstensi untuk lebih sedikit pekerjaan pada bagian pengguna / konsumen ekstensi. Lihat posting blog saya untuk diskusi lebih lanjut.
Jenis UUID
Ngomong-ngomong, kode dalam Pertanyaan memanggil fungsi uuid_generate_v4()
. Ini menghasilkan jenis yang dikenal sebagai Versi 4 di mana hampir semua 128 bit dihasilkan secara acak. Meskipun ini diperbolehkan untuk penggunaan terbatas pada set baris yang lebih kecil, jika Anda ingin menghilangkan kemungkinan tabrakan, gunakan "versi" UUID lainnya.
Sebagai contoh, Versi 1 asli menggabungkan alamat MAC dari komputer host dengan tanggal-waktu saat ini dan nomor yang berubah-ubah, kemungkinan tabrakan praktis nol.
Untuk diskusi lebih lanjut, lihat Jawaban saya pada Pertanyaan terkait.