|
<< İç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).
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.