PostgreSQL

PostgreSQL UUID Türleri ve İşlevleri

PostgreSQL UUID Türleri ve İşlevleri

PostgreSQL UUID veya Evrensel Benzersiz Tanımlayıcı, RFC 4122 tarafından belirtilir ve 128 bit uzunluğa sahiptir. UUID'yi oluşturmak için dahili algoritmalar kullanılır ve her değer farklıdır. PostgreSQL'in kendi UUID veri türü vardır ve bunları modüllerle oluşturur. UUID veri türü yaygın olarak dağıtılmış veritabanlarında atılır, çünkü bu veri türü, yalnızca tek bir veritabanı içinde tekil değerler üreten SERIAL türünden ziyade tekilliği sağlar. PostgreSQL, UUID değerlerini kaydetmenize ve karşılaştırmanıza izin verirken, bu, özünde onları oluşturmak için yöntemlere sahip değildir. Bunun yerine, belirli UUID oluşturma algoritmalarına sahip üçüncü taraf paketlerine dayanır.

Şimdi, aşağıdaki şemada görüldüğü gibi, UUID değerlerinin belirli temsillerine bir göz atalım. Bir UUID, aşağıdaki şemada görüldüğü gibi, dört adede kadar tire içeren 32 bit onaltılık rakamlardan oluşur. Bir UUID ayrıca 0 değerine sahip olabilir; bu, tüm bitlerin boş olduğu anlamına gelir.

PostgreSQL pgAdmin 4 GUI'de UIID oluşturun

PostgreSQL 'pgAdmin 4' grafik kullanıcı arayüzünü açın. Ardından, kullanıcı adı için parola sağlayarak 'postgres' kullanıcısını 'PostgreSQL 13' sunucusuna bağlayın. Kullanmaya başlamak için 'Tamam' düğmesine basın.

“uuid-ossp” paketi, CREATE EXTENSION komutu kullanılarak 'test' Veritabanına kurulacaktır. Aşağıda verilen talimatları doğru bir şekilde takip ederseniz, aşağıdaki resimde gösterildiği gibi “GENİŞLETME OLUŞTUR” mesajını alacaksınız. Aşağıdaki komutta, paketi yeniden yüklemeyi durdurmamıza izin veren “IF NOT EXISTS” koşulu kaldırılmıştır.

>> VARSA UZANTI OLUŞTUR “uuid-ossp”;

'Uzantılar' seçeneğinde, yeni yüklenen “uuid-ossp” paketini görebilirsiniz.

Aşağıda, 'test' veritabanında kurulu uuid-ossp paketiyle ilgili işlevlerin bir listesi bulunmaktadır:

"uuid_generate_v1()" yöntemi, UUID değerleri üretmek için kullanılabilir ve mevcut zaman damgasına bağlı olarak, aynı zamanda isteğe bağlı bir değer olan MAC adres koleksiyonu. Sorgu aracı alanında aşağıdaki talimat çalıştırıldığında, sonraki çıktıyı alacağız. Bu, aşağıdaki anlık görüntüde gösterildiği gibi "uuid_generate_v1()" yöntemi tarafından oluşturulan UUID değerini gösterecektir.

>> SEÇ uuid_generate_v1();

PostgreSQL pgAdmin 4 GUI'de UIID oluşturun

PostgreSQL komut satırı kabuğunuzu açın ve adını girip Enter'a basarak localhost sunucusuna veya bağlanmak istediğiniz başka bir sunucuya bağlayın. Veritabanını 'Veritabanı' satırına adını yazarak değiştirebilirsiniz. Gördüğünüz gibi, 'test' veritabanını kullanıyoruz. Geçiş yapmak için port numaranızı ve kullanıcı adınızı da değiştirebilirsiniz. Bundan sonra, seçilen kullanıcı için şifre istenecektir. Şifreyi verdikten sonra, gitmeniz iyi olacak. Burada herhangi bir değişiklik yapmak istemiyorsanız boşlukları boş bırakın.

"uuid-ossp" paketi, CREATE EXTENSION sorgusu kullanılarak monte edilebilir. Aşağıdaki komutu PostgreSQL'in komut kabuğuna yazın ve sonraki “CREATE EXTENSION” mesajını alabilirsiniz. Paketi yeniden yüklemeyi durdurmamıza izin veren "EĞER VARSA" maddesini de kaldırdık.

>> VARSA UZANTI OLUŞTUR “uuid-ossp”;

"uuid_generate_v1()" işlevi, geçerli zaman damgasına, MAC adres grubuna ve rastgele bir değere bağlı UUID değerlerini oluşturmak için kullanılacaktır. Aşağıdaki sorguyu sorgu alanında yürüterek, “uuid_generate_v1()” yöntemi kullanılarak oluşturulan UUID değerini gösteren sonraki çıktıyı alacaksınız.

>> SEÇ uuid_generate_v1();

“uuid_generate_v4()” yöntemi, aşağıda gösterildiği gibi, yalnızca gelişigüzel sayılarla oluşturulmuş bir UUID değeri oluşturmak için kullanılabilir. Bu, aşağıdaki gibi bir çıktı üretecektir.

>> SEÇ uuid_generate_v4();

PostgreSQL UUID Veri Türü Örneği

Bu örnek, PostgreSQL UIID veri türünün nasıl çalıştığını gösterir. Ayrı bir 'Müşteri' tablosu ve ayrıca UUID alanları oluşturmak için CREATE komutunu kullanacağız. Müşteri kimliği, müşteri adı, müşteri soyadı, müşteri e-posta kimliği ve müşteri adresi, 'Müşteri' tablosundaki sütunlardan yalnızca birkaçıdır. Aynı zamanda birincil anahtar olan UUID veri türü olarak 'Client_id' kullanıyoruz. "uuid_generate_v4()" yöntemi ayrıca birincil temel sütun değerlerini dinamik olarak üretecektir. uuid-ossp modülünün kurulu olduğu bir 'test' veritabanında bir 'Müşteri' tablosu oluşturmak için sorgu aracı alanında aşağıdaki CREATE TABLE komutunu deneyin. "TABLO OLUŞTUR" mesajını alacaksınız, bu, tablonun doğru şekilde oluşturulduğu anlamına gelir.

'Client_id alanı' değerini belirtmeden yeni bir satır eklediğinizde, PostgreSQL bir 'Client_id' değeri üretmek için “uuid_generate_v4()” yöntemini kullanabilir. INSERT komutu ile içine birkaç değer koyacağız. Aşağıdaki talimat yürütüldükten sonra, belirtilen değerlerin 'Müşteri' tablosuna etkin bir şekilde dahil edildiğini gösteren aşağıdaki yanıt ekranı görünecektir.

Şimdi sorgu düzenleyici aracındaki SELECT sorgusunu kullanarak 'Client' tablosunun tüm kayıtlarını getireceğiz. İstemci tablosundaki bilgilerin tamamını veya çoğunu gösterecek olan, aşağıda verilen talimatı uyguladıktan sonra aşağıdaki çıktıyı alacaksınız. 'Client_id' alanı, aşağıdaki resimde görüldüğü gibi "uuid_generate_v4()" yöntemi tarafından oluşturulan UUID değerleri tarafından doldurulacaktır.

>> Müşteriden * SEÇİN;

Sonuç

Bu makale, PostgreSQL pgAdmin 4 Grafik Kullanıcı Arayüzü ve Komut satırı kabuğunu kullanan PostgreSQL UUID veri türü bölümünde aşağıdakiler dahil ana noktaları ele almıştır:

Umarım PostgreSQL'de UUID türleri ve işlevleri üzerinde çalışırken herhangi bir sorunla karşılaşmazsınız.

Linux Oyunlarını Otomatikleştirmek için AutoKey Nasıl Kullanılır?
AutoKey, Linux ve X11 için Python 3, GTK ve Qt'de programlanmış bir masaüstü otomasyon aracıdır. Komut dosyası oluşturma ve MAKRO işlevselliğini kulla...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...