全部产品
Search
文档中心

PolarDB:PERIKSA UNIK ABAIKAN

更新时间:Jul 02, 2025

PolarDB for MySQL mendukung parameter PERIKSA UNIK ABAIKAN (UCI) yang memungkinkan tabel partisi mengabaikan pemeriksaan keunikan untuk kunci partisi. Fitur ini tersedia mulai MySQL versi 8.0.2.2.17 dan lebih baru.

Catatan
  • Fitur ini dalam rilis canary. Untuk menggunakan fitur ini, kunjungi Pusat Kuota. Masukkan polardb_mysql_uci pada kolom quota ID untuk menemukan kuota. Klik Apply di kolom Actions.

  • Untuk informasi lebih lanjut tentang UCI, bergabunglah dengan grup DingTalk 24490017825.

Sintaks

UCI adalah atribut yang dapat Anda atur dalam parameter table_options saat membuat tabel PolarDB. Jika Anda mengatur UNIQUE CHECK IGNORE=1, tabel akan mengabaikan pemeriksaan keunikan untuk kunci partisi dan tidak mempertimbangkan hubungan antara kunci partisi dengan kunci utama atau kunci unik. Anda dapat memilih kolom apa pun sebagai kunci partisi. Sintaks:

CREATE TABLE [ schema. ]table_name
 table_definition table_options
   PARTITION BY ...
   SUBPARTITION BY ...

Opsi UNIQUE CHECK IGNORE = { 1| 0 } ditambahkan ke parameter table_options. Pengaturan UNIQUE CHECK IGNORE=1 menentukan bahwa kunci utama dan kunci unik tidak perlu mencakup semua kolom dari kunci partisi. Anda dapat memilih kolom apa pun sebagai kunci partisi. Namun, ini hanya memastikan keunikan kunci utama dan kunci unik dalam satu partisi, tetapi memungkinkan duplikasi antar partisi yang berbeda.

Catatan
  • UNIQUE CHECK IGNORE hanya dapat digunakan pada tabel partisi. Jika diterapkan pada tabel non-partisi, kesalahan akan dilaporkan.

  • UNIQUE CHECK IGNORE bersifat baca-saja dan tidak dapat diubah setelah tabel dibuat.

  • Tabel partisi yang dibuat dengan UNIQUE CHECK IGNORE=1 tidak menjamin keunikan kunci utama. Untuk memastikan keunikan kunci utama, Anda harus membuat indeks sekunder global (GSI) yang unik untuk kolom kunci utama. Jika tidak, mungkin terdapat nilai kolom kunci utama yang duplikat di partisi yang berbeda. Untuk informasi selengkapnya, lihat Contoh 2.

  • Tabel partisi yang dibuat dengan UNIQUE CHECK IGNORE=1 tidak menjamin keunikan indeks pada tabel partisi tersebut. Sebaiknya Anda membuat indeks sekunder global (GSI) yang unik.

Parameter

Parameter

Deskripsi

table_name

Nama tabel.

Contoh

Contoh 1

CREATE TABLE t1(
        a INT PRIMARY KEY,
        b INT UNIQUE,
        c INT
    ) UNIQUE CHECK IGNORE=1
    PARTITION BY RANGE(c) (
            PARTITION p0 VALUES LESS THAN (20) ,
            PARTITION p1 VALUES LESS THAN (40) ,
            PARTITION p2 VALUES LESS THAN (60)
    );

Contoh 2

// Membuat indeks sekunder global unik memastikan bahwa kunci utama unik.
CREATE TABLE t1(
        a INT PRIMARY KEY,
        b INT UNIQUE,
        c INT,
        UNIQUE KEY i_a_g(a) GLOBAL
    ) UNIQUE CHECK IGNORE=1
    PARTITION BY HASH(c) PARTITIONS 11;