42 lines
1.7 KiB
SQL
42 lines
1.7 KiB
SQL
-- 派车日历自动同步现场日历,MySQL 5.7 / utf8mb4,可重复执行。
|
|
-- 前置:2026-10-30-dispatch-calendar-document-type.sql。先执行迁移再部署后端和 Web。
|
|
-- 只改变结构:历史来源默认 site_sync_enabled=0,后续编辑也不补录。
|
|
-- 上线后后端新建来源显式设置为1;手工现场记录仍为0。
|
|
SET NAMES utf8mb4;
|
|
|
|
SET @col_exists = (
|
|
SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
|
AND COLUMN_NAME = 'site_sync_enabled'
|
|
);
|
|
SET @ddl = IF(@col_exists = 0,
|
|
'ALTER TABLE `pl_dispatch_calendar` ADD COLUMN `site_sync_enabled` smallint NOT NULL DEFAULT 0 COMMENT ''是否启用现场同步:仅新建来源置1,历史为0'' AFTER `document_type`',
|
|
'SELECT 1');
|
|
PREPARE stmt FROM @ddl;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @col_exists = (
|
|
SELECT COUNT(*) FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
|
AND COLUMN_NAME = 'source_record_id'
|
|
);
|
|
SET @ddl = IF(@col_exists = 0,
|
|
'ALTER TABLE `pl_dispatch_calendar` ADD COLUMN `source_record_id` varchar(64) DEFAULT NULL COMMENT ''自动现场记录的来源派车ID,手工记录为空'' AFTER `site_sync_enabled`',
|
|
'SELECT 1');
|
|
PREPARE stmt FROM @ddl;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET @idx_exists = (
|
|
SELECT COUNT(*) FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
|
AND INDEX_NAME = 'uk_dispatch_calendar_source'
|
|
);
|
|
SET @ddl = IF(@idx_exists = 0,
|
|
'ALTER TABLE `pl_dispatch_calendar` ADD UNIQUE KEY `uk_dispatch_calendar_source` (`tenant_no`, `source_record_id`)',
|
|
'SELECT 1');
|
|
PREPARE stmt FROM @ddl;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|