开发指南—常见问题—DDL常见问题

简介: 本文汇总了PolarDB-X上常见的DDL执行问题。

创建表执行出错

DDL的执行是一个分布式处理过程,出错可能导致各个分片表结构不一致,所以需要进行手动清理,详细操作步骤如下:

  1. PolarDB-X会提供基本的错误描述信息,比如语法错误等。如果错误信息太长,则会提示您使用SHOW WARNINGS来查看每个分库执行失败的原因。
  2. 执行SHOW TOPOLOGY命令来查看物理表的拓扑结构。
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 rows in set (0.21 sec)
  1. 执行CHECK TABLE tablename语句来查看逻辑表是否创建成功。例如下面的例子展示了multi_db_multi_tbl的某个物理分表没有创建成功时的情况。
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)
  1. 使用幂等的方式重新执行建表或删表操作,该操作会创建或删除剩余的物理表。
CREATE TABLE IF NOT EXISTS table1
(id int, name varchar(30), primary key(id))
dbpartition by hash(id);  
DROP TABLE IF EXISTS table1;

建索引失败或加列失败

建索引失败或加列失败的处理方法跟上面建表失败的处理类似,详情请参见如何正确处理DDL异常

相关文章
|
文件存储 Docker 智能硬件
DIY nas之casaOS云系统&Home Assistant
CasaOS是一个基于Docker生态系统的开源家庭云系统,专为家庭场景而设计,它可以让您创建自己的云服务器
2780 1
|
算法 调度
操作系统中几种最常见的调度算法(适用于软件设计师考试与期末考试复习)
先进先出置换算法我们可以理解为排队准则(谁先来,谁就先运行)先来先到原则。该算法总是淘汰最先进入主页的页面,即选择在主存中驻留时间最久的页面淘汰。该算法简单,只要把一个进程调入主存的页面,然后按照先后链接一个队列,并设置一个指针即可。它是一个最直观、性能最差的算法,会有 Belady 现象(是指一个进程未分配它所要求的全部页面,有时就.....
1901 1
操作系统中几种最常见的调度算法(适用于软件设计师考试与期末考试复习)
|
Java Maven Spring
maven项目,动态读取外部配置文件
maven项目,动态读取外部配置文件
【verilog】同步复位,异步复位以及异步复位同步释放
该文讨论了数字电路设计中触发器复位机制的三种类型:同步复位、异步复位和异步复位同步释放。同步复位在时钟边沿确保稳定性,但对复位脉冲宽度有要求;异步复位响应快速,但可能受干扰且时序不确定;异步复位同步释放则结合两者的优点。设计时需根据需求权衡选择。文中还给出了Verilog代码示例。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
349 31
|
存储 大数据 OLAP
DataFunCon 2024·北京站|Apache Paimon 实时湖仓存储底座
阿里云开源大数据表存储负责人李劲松老师,7 月 6 日 15:30-16:10 “实时洞察,湖仓之力”论坛将带来主题为《Apache Paimon 实时湖仓存储底座》的精彩内容。
885 7
DataFunCon 2024·北京站|Apache Paimon 实时湖仓存储底座
|
网络协议 网络虚拟化
VLAN高级技术
VLAN高级技术
|
Rust 算法 安全
Rust中的宏与编译时性能优化
本文深入探讨了Rust编程语言中的宏(Macros)及其在编译时性能优化方面的应用。我们将了解宏的基本概念,探索它们在元编程和性能优化中的潜力,并通过实例展示如何使用宏来优化Rust代码的性能。
|
存储 缓存 算法
作者推荐 | 【深入浅出MySQL】「底层原理」探秘缓冲池的核心奥秘,揭示终极洞察
MySQL作为一个存储系统,有着一个关键的优化机制——缓冲池(buffer pool),它极大地提高了数据的访问效率,避免了频繁的磁盘IO操作。通过将常用的数据存储在内存中,MySQL可以快速响应查询请求,减少耗时的磁盘访问。这一优化机制在提升数据库性能方面起到了重要的作用。
715 7
作者推荐 | 【深入浅出MySQL】「底层原理」探秘缓冲池的核心奥秘,揭示终极洞察
|
安全 Java 容器
Netty通道的容器属性Attribute
Netty中的Channel通道类,有类似于Map的容器功能,可以通过“key-value”键值对的形式来保存任何Java Object的值。一般来说可以存放一些与通道实例相关联的属性,比如说服务期端的ServerSession会话实例。