Tüm Ürünler
Search
Belge Merkezi

Hologres:ALTER TABLE

Son Güncelleme:Oct 06, 2026

ALTER TABLE deyimi bir tablonun tanımını değiştirir. Ana tabloda yapılan değişiklikler alt tablolara otomatik olarak uygulanır.

Sınırlamalar

Hologres aşağıdaki tablo değişikliklerini destekler:

  • ALTER TABLE ADD COLUMN ile sütun eklerken toplam sütun sayısı 6.400 olan üst sınırı aşamaz.

  • Tabloları yeniden adlandırabilir, sütun ekleyebilir ve Yaşam Süresi (TTL) değerini değiştirebilirsiniz.

  • Sütunların varsayılan değerlerini ve dictionary_encoding_columns ile bitmap_columns özelliklerini değiştirebilirsiniz.

Kullanım notları

dictionary_encoding_columns, bitmap_columns veya time_to_live_in_seconds gibi tablo özelliklerini değiştirmek arka planda bir sıkıştırma işlemi tetikleyebilir. Bu işlem CPU kaynaklarını tüketir ve örnek depolama alanında geçici bir artışa neden olabilir; alan daha sonra normal seviyesine döner.

Veri türünü değiştirme

Hologres V3.0 ve sonraki sürümlerde dahili bir tablodaki bir sütunun veri türünü değiştirebilirsiniz.

  • Sınırlamalar

    • Bölümlenmemiş tablolarda ve ana tablolarda sütun türlerini değiştirebilirsiniz ancak alt tablolarda değiştiremezsiniz.

    • Ana tabloda bir bölümleme sütununun veri türünü değiştiremezsiniz.

    • COLLATE ve USING yan tümceleri desteklenmez.

    • Yalnızca aşağıdaki veri türü dönüşümleri desteklenir:


      Kaynak tür


      Hedef tür


      Notlar


      VARCHAR(N)


      VARCHAR(M)


      M, N'den büyük olmalıdır.


      VARCHAR(N)


      TEXT


      Yok


      CHAR(N)


      CHAR(M)


      M, N'den büyük olmalıdır.


      CHAR(N)


      VARCHAR(M)


      M, N'den büyük veya eşit olmalıdır.


      CHAR(N)


      TEXT


      Yok


      JSON


      TEXT


      Yok


      VARCHAR(N)[]


      VARCHAR(M)[]


      M, N'den büyük olmalıdır.


      VARCHAR(N)[]


      TEXT[]


      Yok

  • Sözdizimi

    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> ALTER [ COLUMN ] <column_name> TYPE <data_type>;
  • Örnek

    -- Create a table. The initial data type of the class column is varchar(10).
    BEGIN;
    CREATE TABLE tbl (
      "id" bigint NOT NULL,
      "name" text NOT NULL,
      "age" bigint,
      "class" varchar(10) NOT NULL,
      "reg_timestamp" timestamptz NOT NULL,
      PRIMARY KEY (id, age)
    );
    CALL set_table_property('tbl', 'orientation', 'column');
    CALL set_table_property('tbl', 'distribution_key', 'id');
    CALL set_table_property('tbl', 'clustering_key', 'age');
    CALL set_table_property('tbl', 'event_time_column', 'reg_timestamp');
    COMMIT;
    -- Insert sample data.
    INSERT INTO tbl VALUES (1, 'Alice', 18, 'class1', '2024-01-01 10:00:00');
    INSERT INTO tbl VALUES (2, 'Bob', 20, 'class2', '2024-01-02 11:00:00');
    -- Check the data type of the class column before the modification.
    SELECT column_name, data_type, character_maximum_length
    FROM information_schema.columns
    WHERE table_schema = 'public' AND table_name = 'tbl' AND column_name = 'class';
    -- The following result is returned: class | character varying | 10
    -- Modify the data type of the class column to text.
    ALTER TABLE tbl ALTER COLUMN class TYPE text;
    -- Check the data type of the class column after the modification.
    SELECT column_name, data_type, character_maximum_length
    FROM information_schema.columns
    WHERE table_schema = 'public' AND table_name = 'tbl' AND column_name = 'class';
    -- The following result is returned: class | text | NULL

Tabloyu yeniden adlandırma

Bir tabloyu yeniden adlandırmak için ALTER TABLE deyimini kullanabilirsiniz. Tablo mevcut değilse veya yeni ad zaten kullanılıyorsa işlem başarısız olur.

Not

Bir tabloyu farklı şemalar arasında yeniden adlandıramazsınız.

  • Sözdizimi

    -- Rename an internal table.
    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> RENAME TO <new_table_name>;
    -- Rename a foreign table.
    ALTER FOREIGN TABLE [IF EXISTS] [<schema_name>.]<foreign_table_name> RENAME TO <new_foreign_table_name>;
  • Örnek

    -- Create a table and insert sample data.
    CREATE TABLE public.holo_test (id bigint, name text);
    INSERT INTO public.holo_test VALUES (1, 'Alice'), (2, 'Bob');
    -- Check the table name before renaming.
    SELECT table_name FROM information_schema.tables
    WHERE table_schema='public' AND table_name IN ('holo_test', 'holo_test_1');
    -- The following result is returned: holo_test
    -- Rename the holo_test table to holo_test_1.
    ALTER TABLE IF EXISTS public.holo_test RENAME TO holo_test_1;
    -- Check the table name after renaming.
    SELECT table_name FROM information_schema.tables
    WHERE table_schema='public' AND table_name IN ('holo_test', 'holo_test_1');
    -- The following result is returned: holo_test_1
    -- Verify that the data is retained.
    SELECT * FROM public.holo_test_1 ORDER BY id;
    -- The following result is returned: 1, Alice / 2, Bob
    -- Rename the foreign table foreign_holo_test to foreign_holo_test_1.
    ALTER FOREIGN TABLE IF EXISTS public.foreign_holo_test RENAME TO foreign_holo_test_1;

Sütun ekleme

Bir tabloya sütun eklemek için ALTER TABLE deyimini kullanabilirsiniz. Yeni sütunlar her zaman tablonun sonuna eklenir.

  • Sözdizimi

    -- Add a single column.
    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> ADD COLUMN <new_column> <data_type>;
    -- Add multiple columns.
    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> ADD COLUMN <new_column_1> <data_type>, ADD COLUMN <new_column_2> <data_type>; 
  • Örnek

    -- Create a table and insert sample data.
    CREATE TABLE public.holo_test (name text);
    INSERT INTO public.holo_test VALUES ('Alice'), ('Bob');
    -- Check the column structure before adding a new column.
    SELECT column_name, data_type FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_test' ORDER BY ordinal_position;
    -- The following result is returned: name | text
    -- Add the id column to the holo_test table.
    ALTER TABLE IF EXISTS public.holo_test ADD COLUMN id int;
    -- Check the column structure after adding the id column.
    SELECT column_name, data_type FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_test' ORDER BY ordinal_position;
    -- The following results are returned:
    -- name | text
    --      id   | integer
    -- Add multiple columns at once.
    ALTER TABLE IF EXISTS public.holo_test ADD COLUMN age int, ADD COLUMN city text;
    -- Check the column structure after adding multiple columns.
    SELECT column_name, data_type FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_test' ORDER BY ordinal_position;
    -- The following results are returned:
    -- name | text
    --      id   | integer
    --      age  | integer
    --      city | text

Sütun silme (Beta)

Hologres V2.0 ve sonraki sürümlerde bir tablodan sütun silebilirsiniz.

  • Sınırlamalar

    • Bu özellik yalnızca Hologres V2.0 ve sonraki sürümlerde kullanılabilir. Örneğiniz V2.0'dan önceki bir sürümü çalıştırıyorsa bakın yaygın yükseltme hazırlık hatalarını giderme veya yardım için bizimle iletişime geçin. Daha fazla bilgi için bkz. Daha fazla çevrimiçi desteği nasıl alabilirim?.

    • Bölümlenmiş bir tablo için sütunları yalnızca ana tablodan silebilirsiniz. Bu işlem ilgili sütunu tüm alt tablolardan otomatik olarak siler. Bu işlem yoğun kaynak gerektirdiğinden yoğun olmayan saatlerde gerçekleştirilmelidir.

    • Yalnızca tablo sahibi bir sütunu silebilir. Veritabanınız Basit İzin Modeli'ni (SPM) kullanıyorsa geliştirici kullanıcı grubunun üyesi olmanız gerekir.

    • Birincil anahtar, dağıtım anahtarı, kümeleme anahtarı olarak ayarlanmış veya event_time_column özelliğinde belirtilmiş bir sütunu silemezsiniz.

    • Harici bir tablodan sütun silemezsiniz.

    • JSONB ile ilgili bir sütunu silmek ilişkili dizini de siler.

    • proxima_vector sütununu silmek için cascade parametresi gerekir.

    • SERIAL sütununu silmek bunun için oluşturulan sırayı da siler.

    • Materyalleştirilmiş bir görünüm bir tabloya bağımlıysa o tabloyu veya görünüm tarafından başvurulan herhangi bir sütununu silemezsiniz.

  • Sözdizimi

    Önemli

    Bu özellik Hologres'in V2.0'dan önceki sürümlerinde desteklenmez.

    set hg_experimental_enable_drop_column = on; -- Enable the feature by using this GUC parameter.
    ALTER TABLE IF EXISTS <table_name> DROP COLUMN  [ IF EXISTS ] <column> [ RESTRICT | CASCADE ]
  • Örnek

    -- Create a table.
    begin;
    CREATE TABLE tbl (
     "id" bigint NOT NULL,
     "name" text NOT NULL,
     "age" bigint,
     "class" text NOT NULL,
     "reg_timestamp" timestamptz NOT NULL,
    PRIMARY KEY (id,age)
    );
    call set_table_property('tbl', 'orientation', 'column');
    call set_table_property('tbl', 'distribution_key', 'id');
    call set_table_property('tbl', 'clustering_key', 'age');
    call set_table_property('tbl', 'event_time_column', 'reg_timestamp');
    call set_table_property('tbl', 'bitmap_columns', 'name,class');
    call set_table_property('tbl', 'dictionary_encoding_columns', 'class:auto');
    commit;
    -- Insert sample data.
    INSERT INTO tbl VALUES (1, 'Alice', 18, 'class1', '2024-01-01 10:00:00');
    INSERT INTO tbl VALUES (2, 'Bob', 20, 'class2', '2024-01-02 11:00:00');
    -- Drop the specified column.
    set hg_experimental_enable_drop_column = on;-- This feature is in beta. You must enable it by using a GUC parameter.
    ALTER TABLE IF EXISTS tbl DROP COLUMN name;

    Tabloyu sorgulayın:

    SELECT * FROM tbl;
    -- The following result is returned:
     id | age | class  |      reg_timestamp
    ----+-----+--------+------------------------
      1 |  18 | class1 | 2024-01-01 10:00:00+08
      2 |  20 | class2 | 2024-01-02 11:00:00+08
    (2 rows)

Sütunu yeniden adlandırma

Hologres V1.1 ve sonraki sürümlerde sütunları yeniden adlandırabilirsiniz.

Not
  • Örneğiniz V1.1'den önceki bir sürümü çalıştırıyorsa bakın yaygın yükseltme hazırlık hatalarını giderme veya yardım için bizimle iletişime geçin. Daha fazla bilgi için bkz. Daha fazla çevrimiçi desteği nasıl alabilirim?.

  • Bölümlenmiş tablolar için sütunları yalnızca ana tabloda yeniden adlandırabilirsiniz. Değişiklik otomatik olarak tüm alt tablolara yayılır.

  • Aynı anda birden fazla tabloda sütunları yeniden adlandıramazsınız.

  • Yalnızca tablo sahibi bir sütunu yeniden adlandırabilir. Veritabanınız Basit İzin Modeli'ni (SPM) kullanıyorsa geliştirici kullanıcı grubunun üyesi olmanız gerekir.

  • Sözdizimi

    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> RENAME COLUMN <old_column_name> TO <new_column_name>;
  • Örnek

    -- Create a table and insert sample data.
    CREATE TABLE public.holo_rename_col (id bigint, age int);
    INSERT INTO public.holo_rename_col VALUES (1, 18), (2, 20);
    -- Check the column names before renaming.
    SELECT column_name FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_rename_col' ORDER BY ordinal_position;
    -- The following results are returned:
    -- id
    --      age
    -- Rename the age column in the holo_rename_col table to user_age.
    ALTER TABLE IF EXISTS public.holo_rename_col RENAME COLUMN age TO user_age;
    -- Check the column names after renaming.
    SELECT column_name FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_rename_col' ORDER BY ordinal_position;
    -- The following results are returned:
    -- id
    --      user_age
    -- Verify that the data is retained.
    SELECT * FROM public.holo_rename_col ORDER BY id;
    -- The following results are returned:
    -- 1, 18
    --      2, 20

Varsayılan değeri değiştirme

Bir sütunun varsayılan değerini değiştirmek için ALTER TABLE deyimini kullanabilirsiniz. Varsayılan değer bir sabit veya sabit ifade olabilir. Bu değişiklik yalnızca sonraki INSERT ve UPDATE işlemlerini etkiler; mevcut verileri değiştirmez. Bu özellik yalnızca Hologres V0.9.23 ve sonraki sürümlerde kullanılabilir.

  • Sözdizimi

    -- Modify the default value of a table column.
    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> ALTER COLUMN <column> SET DEFAULT <expression>;
    -- Drop the default value of a table column.
    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> ALTER COLUMN <column> DROP DEFAULT;
  • Örnek

    -- Create a table and insert an initial row without a default value.
    CREATE TABLE public.holo_default (id int, name text);
    INSERT INTO public.holo_default (name) VALUES ('Alice');
    -- Check the initial default values.
    SELECT column_name, column_default FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_default' ORDER BY ordinal_position;
    -- The following results are returned:
    -- id,   NULL
    --      name, NULL
    -- Modify the default value of the id column to 0.
    ALTER TABLE IF EXISTS public.holo_default ALTER COLUMN id SET DEFAULT 0;
    -- Check the modified default value.
    SELECT column_name, column_default FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_default' ORDER BY ordinal_position;
    -- The following results are returned:
    -- id,   0
    --      name, NULL
    -- Insert a new row to verify that the default value applies only to new data.
    INSERT INTO public.holo_default (name) VALUES ('Bob');
    SELECT * FROM public.holo_default ORDER BY name;
    -- The following results are returned:
    -- Alice, NULL   (Inserted before SET DEFAULT, so no default value is applied.)
    --      Bob,   0      (Inserted after SET DEFAULT, so the default value 0 is automatically applied.)
    -- Drop the default value of the id column.
    ALTER TABLE IF EXISTS public.holo_default ALTER COLUMN id DROP DEFAULT;
    -- Check the default value after it is dropped.
    SELECT column_name, column_default FROM information_schema.columns
    WHERE table_schema='public' AND table_name='holo_default' ORDER BY ordinal_position;
    -- The following results are returned:
    -- id,   NULL
    --      name, NULL

Tablo özelliklerini değiştirme

Aşağıda açıklanan deyimleri kullanarak tablo özelliklerini değiştirebilirsiniz:

  • dictionary_encoding_columns özelliğini değiştirin. Sözlük kodlama ayarlarının değiştirilmesi CPU ve bellek tüketen bir veri yeniden kodlama sürecini tetikler. Bu değişikliği yoğun olmayan saatlerde gerçekleştirin.

    • Sözdizimi

      -- Modify dictionary_encoding_columns (for V2.1 and later).
      ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> SET (dictionary_encoding_columns = '[columnName{:[on|off|auto]}[,...]]'); -- Only full modification is supported.
      -- Modify dictionary_encoding_columns (for all versions).
      -- Full modification
      CALL SET_TABLE_PROPERTY('[<schema_name>.]<table_name>', 'dictionary_encoding_columns', '[columnName{:[on|off|auto]}[,...]]');
      -- Incremental modification. Only the specified columns are modified. Other columns remain unchanged.
      CALL UPDATE_TABLE_PROPERTY('[<schema_name>.]<table_name>', 'dictionary_encoding_columns', '[columnName{:[on|off|auto]}[,...]]');
      Önemli

      Hologres V2.0 ve sonraki sürümlerde boş bir değerle UPDATE_TABLE_PROPERTY deyiminin çalıştırılması dictionary_encoding_columns özelliğini korur. Önceki sürümlerde aynı işlem dictionary_encoding_columns özelliğini temizler.

      CALL UPDATE_TABLE_PROPERTY('<table_name>','dictionary_encoding_columns','');
    • Parametreler


      Parametre


      Açıklama


      table_name


      Hedef tablonun adı. Ad büyük/küçük harfe duyarlıdır ve şema nitelikli olabilir.


      on


      Belirtilen sütun için dictionary_encoding_columns özelliğini etkinleştirir.


      off


      Belirtilen sütun için dictionary_encoding_columns özelliğini devre dışı bırakır.


      auto


      Hologres, sütundaki değerlerin tekrar oranına bağlı olarak dictionary_encoding_columns uygulamanın gerekip gerekmediğini otomatik olarak belirler. Daha yüksek bir tekrar oranı sözlük kodlamadan daha fazla fayda sağlar. Hologres V0.8 ve önceki sürümlerde dictionary_encoding_columns özelliği tüm text sütunları için varsayılan olarak etkinleştirilmiştir. Hologres V0.9 ve sonraki sürümlerde sözlük kodlama veri özelliklerine göre etkinleştirilir.

    • Örnekler

      • Artımlı bir değişiklik için UPDATE_TABLE_PROPERTY kullanın: a sütunu için sözlük kodlamasını açıkça etkinleştirin, b sütununu auto olarak ayarlayın ve diğer sütunları değişmeden bırakın.

        -- Create a table.
        CREATE TABLE public.holo_dict_test (
         a text NOT NULL,
         b text NOT NULL,
         c text NOT NULL,
         d text
        );
        -- Check the dictionary_encoding_columns property before modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_dict_test' AND property_key='dictionary_encoding_columns';
        -- The following result is returned: a:auto,b:auto,c:auto,d:auto (By default, 'auto' is set for all text columns in a new table.)
        -- Perform an incremental modification: explicitly enable for column a, and set to auto for column b.
        CALL UPDATE_TABLE_PROPERTY('public.holo_dict_test','dictionary_encoding_columns','a:on,b:auto');
        -- Check the dictionary_encoding_columns property after modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_dict_test' AND property_key='dictionary_encoding_columns';
        -- The following result is returned: b:auto,c:auto,d:auto,a (Only a and b are modified as specified; c and d remain unchanged. The ':on' suffix is omitted because it is the default value. Explicitly modified columns are moved to the end of the list.)
      • Tam üzerine yazma işlemi için SET_TABLE_PROPERTY kullanın: a sütunu için sözlük kodlamasını açıkça devre dışı bırakın. Listelenmemiş sütunların sözlük ayarları sıfırlanır.

        -- Create a table.
        CREATE TABLE public.holo_dict_test_2 (
         a text NOT NULL,
         b text NOT NULL,
         c text NOT NULL,
         d text
        );
        -- Check the dictionary_encoding_columns property before modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_dict_test_2' AND property_key='dictionary_encoding_columns';
        -- The following result is returned: a:auto,b:auto,c:auto,d:auto
        -- Perform a full modification: disable dictionary encoding only for column a. Other columns are not included in the list.
        CALL SET_TABLE_PROPERTY('public.holo_dict_test_2','dictionary_encoding_columns','a:off');
        -- Check the dictionary_encoding_columns property after modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_dict_test_2' AND property_key='dictionary_encoding_columns';
        -- The following result is returned: b:auto,c:auto,d:auto (Setting 'a:off' removes column a from the list. Unlisted columns b, c, and d are reset to 'auto'.)
  • bitmap_columns özelliğini değiştirin.

    Hologres V0.9 ve sonraki sürümlerde tabloyu yeniden oluşturmadan bitmap_columns özelliğini değiştirebilirsiniz.

    • Sözdizimi

      -- Modify bitmap_columns (for V2.1 and later).
      ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name> SET (bitmap_columns = '[columnName{:[on|off]}[,...]]');
      -- Modify bitmap_columns (for all versions).
      -- Full modification
      CALL SET_TABLE_PROPERTY('[<schema_name>.]<table_name>', 'bitmap_columns', '[columnName{:[on|off]}[,...]]');
      -- Incremental modification. Only the specified columns are modified. Other columns remain unchanged.
      CALL UPDATE_TABLE_PROPERTY('[<schema_name>.]<table_name>', 'bitmap_columns', '[columnName{:[on|off]}[,...]]');
      Önemli

      Hologres V2.0 ve sonraki sürümlerde boş bir değerle UPDATE_TABLE_PROPERTY deyiminin çalıştırılması bitmap_columns özelliğini korur. Önceki sürümlerde bu işlem bitmap_columns özelliğini temizler.

      CALL UPDATE_TABLE_PROPERTY('<table_name>','bitmap_columns','');
    • Parametreler


      Parametre


      Açıklama


      table_name


      Hedef tablonun adı. Ad büyük/küçük harfe duyarlıdır ve şema nitelikli olabilir.


      on


      Belirtilen sütun için bitmap_columns özelliğini etkinleştirir.


      off


      Belirtilen sütun için bitmap_columns özelliğini devre dışı bırakır.

    • Örnekler

      • Artımlı bir değişiklik için UPDATE_TABLE_PROPERTY kullanın: Bitmap dizinini yalnızca a sütunu için devre dışı bırakın ve b, c ile d sütunlarını değişmeden bırakın. Varsayılan olarak bitmap dizinleri yeni bir tablodaki tüm sütunlar için otomatik olarak etkinleştirilir.

        -- Create a table.
        CREATE TABLE public.holo_bitmap_test (
         a text NOT NULL,
         b text NOT NULL,
         c text NOT NULL,
         d text
        );
        -- Check the bitmap_columns property before modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_bitmap_test' AND property_key='bitmap_columns';
        -- The following result is returned: a,b,c,d (By default, this is enabled for all columns in a new table. The ':on' suffix is omitted because it is the default.)
        -- Perform an incremental modification: disable the bitmap index only for column a.
        CALL UPDATE_TABLE_PROPERTY('public.holo_bitmap_test','bitmap_columns','a:off');
        -- Check the bitmap_columns property after modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_bitmap_test' AND property_key='bitmap_columns';
        -- The following result is returned: b,c,d (Column a is disabled and removed from the list. Columns b, c, and d remain enabled by default. The ':on' suffix is omitted because it is the default.)
      • Tam üzerine yazma işlemi için SET_TABLE_PROPERTY kullanın: Bitmap dizinini yalnızca b sütunu için etkinleştirin. Listelenmemiş a, c ve d sütunlarının bitmap dizinleri kaldırılır.

        -- Create a table.
        CREATE TABLE public.holo_bitmap_test_2 (
         a text NOT NULL,
         b text NOT NULL,
         c text NOT NULL,
         d text
        );
        -- Check the bitmap_columns property before modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_bitmap_test_2' AND property_key='bitmap_columns';
        -- The following result is returned: a,b,c,d (By default, this is enabled for all columns in a new table. The ':on' suffix is omitted because it is the default.)
        -- Perform a full modification: enable only for column b. Other columns are not in the list.
        CALL SET_TABLE_PROPERTY('public.holo_bitmap_test_2','bitmap_columns','b:on');
        -- Check the bitmap_columns property after modification.
        SELECT property_value FROM hologres.hg_table_properties
        WHERE table_name='holo_bitmap_test_2' AND property_key='bitmap_columns';
        -- The following result is returned: b (Bitmap index settings for unlisted columns a, c, and d are cleared. The ':on' suffix is omitted because it is the default.)
  • Tablonun Yaşam Süresini (TTL) değiştirin.

    • Sözdizimi

      call set_table_property('[<schema_name>.]<table_name>', 'time_to_live_in_seconds', '<non_negative_literal>');
    • Parametreler


      Parametre


      Açıklama


      time_to_live_in_seconds


      Tablo verilerinin Yaşam Süresi (TTL), saniye cinsinden. Değer 86.400'den (bir gün) büyük veya eşit bir tamsayı olmalıdır.

      Not

      Süresi dolmuş verilerin silinmesi otomatiktir ancak gecikebilir.

    • Örnek

      -- Create a table.
      CREATE TABLE public.holo_ttl_test (
       id bigint,
       name text
      );
      -- Check the TTL property before modification.
      SELECT property_value FROM hologres.hg_table_properties
      WHERE table_name='holo_ttl_test' AND property_key='time_to_live_in_seconds';
      -- The following result is returned: 3153600000 (The default value, approximately 100 years.)
      -- Modify the TTL to one day (86,400 seconds).
      CALL SET_TABLE_PROPERTY('public.holo_ttl_test', 'time_to_live_in_seconds', '86400');
      -- Check the TTL property after modification.
      SELECT property_value FROM hologres.hg_table_properties
      WHERE table_name='holo_ttl_test' AND property_key='time_to_live_in_seconds';
      -- The following result is returned: 86400 (The TTL is now set to 1 day.)

Tablo şemasını değiştirme

Hologres V1.3'ten başlayarak tabloyu yeniden oluşturmadan veya verileri içe aktarmadan schema1 şemasından schema2 şemasına taşıyarak şemalar arasında hareket ettirebilirsiniz. Bu sayede bir tablonun şemasını hızla değiştirebilirsiniz.

  • Sözdizimi

    ALTER TABLE [IF EXISTS] [<schema_name>.]<table_name>
        SET SCHEMA <new_schema>;

    schema_name: tablonun mevcut şeması. table_name: taşınacak tablonun adı. new_schema: hedef şema.

  • Örnek

    schema_demo adlı tabloyu public şemasından testschema şemasına taşıyın.

    -- Create the target schema.
    CREATE SCHEMA IF NOT EXISTS testschema;
    -- Create a table and insert sample data.
    CREATE TABLE public.schema_demo (
     id bigint PRIMARY KEY,
     name text
    );
    INSERT INTO public.schema_demo VALUES (1, 'alice'), (2, 'bob');
    -- Check the schema where the table resides before the move.
    SELECT table_schema, table_name FROM information_schema.tables
    WHERE table_name='schema_demo';
    -- The following result is returned: public | schema_demo
    -- Move the table from the public schema to the testschema schema.
    ALTER TABLE IF EXISTS public.schema_demo SET SCHEMA testschema;
    -- Check the schema where the table resides after the move.
    SELECT table_schema, table_name FROM information_schema.tables
    WHERE table_name='schema_demo';
    -- The following result is returned: testschema | schema_demo
    -- Verify that the data is fully retained.
    SELECT * FROM testschema.schema_demo ORDER BY id;
    -- The following result is returned: 1, alice / 2, bob

HoloWeb'de tabloları değiştirme

SQL yazmadan tablo sütunlarını ve özelliklerini değiştirmek için HoloWeb görsel düzenleyicisini de kullanabilirsiniz. Bunun için şu adımları izleyin:

  1. HoloWeb konsoluna gidin. Daha fazla bilgi için bkz. HoloWeb'e bağlanma ve SQL sorguları çalıştırma.

  2. HoloWeb sayfasının üst menü çubuğunda Metadata Management seçeneğine tıklayın.

  3. Metadata Management sayfasında soldaki Instances Connected listesinde örneğinizi bulun ve hedef tabloyu çift tıklayın.

  4. Tablo ayrıntıları sayfasında tablonun sütunlarını ve bazı özelliklerini görsel olarak değiştirebilirsiniz.

    Columns sekmesinde tüm sütun bilgilerini görüntüleyebilirsiniz. Bir sütun eklemek için alt kısımdaki Add Column seçeneğine tıklayın ve ardından görünen yeni satıra bir ad ve veri türü girin.

  5. Değişikliklerinizi uygulamak için sağ üst köşedeki Submit seçeneğine tıklayın.