| 12345678910111213141516171819202122232425262728293031323334353637 |
- -- KPI 原子表由显式 DDL 管理;一次性收敛删除标识类型,避免启动期 CodeFirst 反复重建大表。
- -- 表尚未创建时跳过,后续 AidopTenantMigration 会按规范 DDL 创建。
- SET @has_is_deleted := (
- SELECT COUNT(*)
- FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'ado_smart_ops_kpi_atomic_day'
- AND COLUMN_NAME = 'is_deleted'
- );
- SET @sql := IF(
- @has_is_deleted = 1,
- 'UPDATE ado_smart_ops_kpi_atomic_day SET is_deleted = 0 WHERE is_deleted IS NULL',
- 'DO 0'
- );
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- SET @needs_fix := (
- SELECT COUNT(*)
- FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE()
- AND TABLE_NAME = 'ado_smart_ops_kpi_atomic_day'
- AND COLUMN_NAME = 'is_deleted'
- AND (
- DATA_TYPE <> 'tinyint'
- OR IS_NULLABLE <> 'NO'
- OR COALESCE(COLUMN_DEFAULT, '') <> '0'
- )
- );
- SET @sql := IF(
- @needs_fix = 1,
- 'ALTER TABLE ado_smart_ops_kpi_atomic_day MODIFY is_deleted TINYINT NOT NULL DEFAULT 0 COMMENT ''删除标识''',
- 'DO 0'
- );
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|