6.10 Sürüm sayacı ve GUID (IVD$VERSION, IVD$GUID_OBJECT_ID, IVD$CREATION)

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 6. Veri tanımlama (DDL) >

6.10 Sürüm sayacı ve GUID (IVD$VERSION, IVD$GUID_OBJECT_ID, IVD$CREATION)

ivd$objects.ivd$version nesnenin katalog yazım sayacıdır: ilk yazımda 1, satırın her yeniden yazımında +1 — yeniden tanım (CREATE OR ALTER, ALTER VIEW … AS, ALTER PROCEDURE), her ALTER TABLE (kolon ekleme/düşürme/değiştirme dahil), öteki nesnelerin ALTER … SET …'i. Yeniden tanım nesne kimliği gibi sayacı da eskisinden devralır. ivd$creation ilk yazımda damgalanır ve sonra korunur, ivd$last_update her yazımda yenilenir. ivd$guid_object_id yalnız bildirimden dolar: ATTRIBUTES ("ns.guid" = '{…}') ya da ATTRIBUTES (GUID = '{…}'); otomatik üretim yoktur (üretilen GUID build'ler arası değişir, kararlı kimlik amacı boşa çıkar). Geçersiz metin INVALID_GUID_STRING (22018). Yeniden tanımda GUID verilmezse eskisi kalır; ALTER … SET ATTRIBUTES (GUID = …) sonradan verir, ALTER TABLE'da ROLLBACK geri alır. Üç değer OPEN DATABASE ile geri okunur ve sayaç kaldığı yerden sürer. Sınama modülü: sqltest/ddl/test33-version_guid.sql (+ test28-open_database.sql).

Not

Kaynak hash'i bu kolona yazılmaz (kolon bir sayaçtır); katalog düzeyi IVD$CATALOG_INFO.SOURCE_HASH ayrıdır. sqlite bir GUID kolonunu TEXT saklar; metin → GUID dönüşümü her yerde vardır (cast('{…}' as guid) dahil), bu yüzden GUID kolonu sqlite'tan da geri okunur.