ForgeFlow-ERP/backend/sql/optimize_miniapp_operation_report_indexes.sql
2026-06-12 16:00:56 +08:00

48 lines
1.9 KiB
SQL

SET @idx_reports_report_date_id_exists := (
SELECT COUNT(1)
FROM information_schema.statistics
WHERE table_schema = DATABASE()
AND table_name = 'production_reports'
AND index_name = 'idx_reports_report_date_id'
);
SET @idx_reports_report_date_id_sql := IF(
@idx_reports_report_date_id_exists = 0,
'ALTER TABLE production_reports ADD INDEX idx_reports_report_date_id (report_date, id)',
'SELECT ''idx_reports_report_date_id already exists'''
);
PREPARE idx_reports_report_date_id_stmt FROM @idx_reports_report_date_id_sql;
EXECUTE idx_reports_report_date_id_stmt;
DEALLOCATE PREPARE idx_reports_report_date_id_stmt;
SET @idx_reports_updated_at_id_exists := (
SELECT COUNT(1)
FROM information_schema.statistics
WHERE table_schema = DATABASE()
AND table_name = 'production_reports'
AND index_name = 'idx_reports_updated_at_id'
);
SET @idx_reports_updated_at_id_sql := IF(
@idx_reports_updated_at_id_exists = 0,
'ALTER TABLE production_reports ADD INDEX idx_reports_updated_at_id (updated_at, id)',
'SELECT ''idx_reports_updated_at_id already exists'''
);
PREPARE idx_reports_updated_at_id_stmt FROM @idx_reports_updated_at_id_sql;
EXECUTE idx_reports_updated_at_id_stmt;
DEALLOCATE PREPARE idx_reports_updated_at_id_stmt;
SET @idx_report_items_report_id_id_exists := (
SELECT COUNT(1)
FROM information_schema.statistics
WHERE table_schema = DATABASE()
AND table_name = 'production_report_items'
AND index_name = 'idx_report_items_report_id_id'
);
SET @idx_report_items_report_id_id_sql := IF(
@idx_report_items_report_id_id_exists = 0,
'ALTER TABLE production_report_items ADD INDEX idx_report_items_report_id_id (report_id, id)',
'SELECT ''idx_report_items_report_id_id already exists'''
);
PREPARE idx_report_items_report_id_id_stmt FROM @idx_report_items_report_id_id_sql;
EXECUTE idx_report_items_report_id_id_stmt;
DEALLOCATE PREPARE idx_report_items_report_id_id_stmt;