全部产品
Search
文档中心

PolarDB:FAQ DDL

更新时间:Jul 02, 2025

Topik ini menjawab pertanyaan umum tentang kesalahan eksekusi pernyataan bahasa definisi data (DDL) di PolarDB-X 1.0.

Apa yang dapat saya lakukan jika terjadi kesalahan eksekusi saat saya membuat tabel?

Pernyataan DDL diproses dalam mode terdistribusi. Kesalahan dapat menyebabkan ketidaksesuaian skema antar shard. Oleh karena itu, Anda perlu membersihkan kesalahan secara manual dengan mengikuti langkah-langkah berikut:

  1. PolarDB-X 1.0 memberikan informasi deskripsi dasar kesalahan, seperti kesalahan sintaksis. Jika pesan kesalahan terlalu panjang, sistem akan meminta Anda untuk menjalankan perintah SHOW WARNINGS guna melihat penyebab kegagalan eksekusi pada setiap shard database.
  2. Jalankan perintah SHOW TOPOLOGY untuk melihat topologi tabel fisik.
     SHOW TOPOLOGY FROM multi_db_multi_tbl;
     +------+-----------------+-----------------------+
     | ID   | GROUP_NAME      | TABLE_NAME            |
     +------+-----------------+-----------------------+
     |    0 | corona_qatest_0 | multi_db_multi_tbl_00 |
     |    1 | corona_qatest_0 | multi_db_multi_tbl_01 |
     |    2 | corona_qatest_0 | multi_db_multi_tbl_02 |
     |    3 | corona_qatest_1 | multi_db_multi_tbl_03 |
     |    4 | corona_qatest_1 | multi_db_multi_tbl_04 |
     |    5 | corona_qatest_1 | multi_db_multi_tbl_05 |
     |    6 | corona_qatest_2 | multi_db_multi_tbl_06 |
     |    7 | corona_qatest_2 | multi_db_multi_tbl_07 |
     |    8 | corona_qatest_2 | multi_db_multi_tbl_08 |
     |    9 | corona_qatest_3 | multi_db_multi_tbl_09 |
     |   10 | corona_qatest_3 | multi_db_multi_tbl_10 |
     |   11 | corona_qatest_3 | multi_db_multi_tbl_11 |
     +------+-----------------+-----------------------+
     12 baris dalam set (0,21 detik)
  3. Jalankan perintah CHECK TABLE tablename untuk memeriksa apakah tabel logis telah dibuat.

    Sebagai contoh, berikut adalah skenario di mana pembuatan shard tabel fisik dari multi_db_multi_tbl gagal.

        mysql> check table multi_db_multi_tbl;
        +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+
        | TABLE                                           | OP    | MSG_TYPE | MSG_TEXT                                                                  |
        +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+
        | andor_mysql_qatest. multi_db_multi_tbl | check | Error    | Table 'corona_qatest_0. multi_db_multi_tbl_02' doesn't exist |
        +-------------------------------------------------+-------+----------+---------------------------------------------------------------------------+
        1 row in set (0,16 sec)
                        
  4. Buat atau hapus tabel dalam mode idempoten untuk menangani tabel fisik yang tersisa.
    CREATE TABLE IF NOT EXISTS table1
    (id int, name varchar(30), primary key(id))
    dbpartition by hash(id);  
    DROP TABLE IF EXISTS table1;

Apa yang dapat saya lakukan jika gagal membuat indeks atau menambahkan kolom?

Metode penanganan kegagalan saat membuat indeks atau menambahkan kolom serupa dengan langkah-langkah untuk kegagalan pembuatan tabel. Untuk informasi lebih lanjut, lihat Memecahkan Masalah Pengecualian DDL.