用途:面向 MariaDB 的模式定义语句(CREATE、ALTER、DROP、RENAME)及序列、生成列、不可见列、分区,适合在生产规模表上做模式迁移前参考。
主要能力与要点:ALTER TABLE 始终显式写 ALGORITHM= 与 LOCK=,让服务器快速失败而非静默回退 COPY;ADD COLUMN(10.3+)与 DROP COLUMN(10.4+)优先 ALGORITHM=INSTANT,仅改元数据不重写;大表加非 INSTANT 索引用 ALGORITHM=INPLACE, LOCK=NONE;生产大表避免默认 COPY。ROW_FORMAT=COMPRESSED 或含 FULLTEXT 索引的表不支持 INSTANT。生成列默认 VIRTUAL,需要外键指向、复制计算值或重读代价高时用 PERSISTENT。蓝绿部署可用单条 RENAME TABLE 原子换名。视图需 CREATE OR REPLACE VIEW,ALTER VIEW 不会重建。序列为 MariaDB 10.3+ 独有,兼容 Oracle/PostgreSQL 语法,MySQL 无序列。分区表不能有外键也不能被外键引用。10.6+ 单表 DDL 具备原子性,多表 DROP 崩溃安全但非完全原子。
用法示例:ALTER TABLE invoice ADD COLUMN paid_at TIMESTAMP(6) NULL AFTER created_at, ALGORITHM=INSTANT, LOCK=NONE; 建表时显式设置 CHARSET(10.6/10.11 默认仍为 latin1)。
限制:INSTANT 不可行时报错 HY000 1845;VIRTUAL 列加索引需 ALGORITHM=COPY;分区表主键必须包含分区列;删除被外键引用的表会报错。其余细节暂未提供。