| 123456789101112131415161718192021222324252627282930 |
- -- =============================================================================
- -- debtAmount 并入 balance — 加字段 balanceMerged(在线 DDL,尽量避免锁表)
- -- =============================================================================
- -- 执行前确认列不存在(已存在则跳过该表):
- -- SELECT TABLE_NAME, COLUMN_NAME FROM information_schema.COLUMNS
- -- WHERE TABLE_SCHEMA = DATABASE()
- -- AND TABLE_NAME IN ('xhGhsCustom', 'xhGhs')
- -- AND COLUMN_NAME = 'balanceMerged';
- --
- -- 少锁表做法:
- -- · 列加在表末尾(不写 AFTER debtAmount),避免为「插中间列」触发拷表
- -- · NOT NULL DEFAULT 0,无需 UPDATE 回填
- -- · ALGORITHM=INPLACE, LOCK=NONE:允许并发 DML(MySQL 5.7+/8.0 常见)
- -- · 8.0 若支持 INSTANT,可把 INPLACE 换成 INSTANT(变更更快、锁更短)
- -- · 极大表或仍阻塞时,用 pt-online-schema-change / gh-ost 加同名列
- --
- -- 业务合并:bizGhs\custom\classes\AccountMoneyClass
- -- =============================================================================
- SET SESSION lock_wait_timeout = 10;
- ALTER TABLE `xhGhsCustom`
- ADD COLUMN `balanceMerged` tinyint(1) NOT NULL DEFAULT 0 COMMENT '挂账已并入余额:0否1是',
- ALGORITHM = INPLACE,
- LOCK = NONE;
- ALTER TABLE `xhGhs`
- ADD COLUMN `balanceMerged` tinyint(1) NOT NULL DEFAULT 0 COMMENT '挂账已并入余额:0否1是',
- ALGORITHM = INPLACE,
- LOCK = NONE;
|