1.0.364.sql 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. -- WP-SD1: improvement plan trusted-scope guards.
  2. DELETE FROM `ado_smart_ops_improvement_plan`
  3. WHERE `TenantId` IS NULL OR `TenantId` IN (0,1,1300000000001);
  4. SET @uk_sql := IF(
  5. (SELECT COUNT(*) FROM information_schema.STATISTICS
  6. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  7. AND INDEX_NAME='uk_smart_ops_improve_tenant_plan')=0,
  8. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD UNIQUE INDEX `uk_smart_ops_improve_tenant_plan` (`TenantId`,`PlanNo`)',
  9. 'SELECT 1');
  10. PREPARE uk_stmt FROM @uk_sql;
  11. EXECUTE uk_stmt;
  12. DEALLOCATE PREPARE uk_stmt;
  13. SET @q_sql := IF(
  14. (SELECT COUNT(*) FROM information_schema.STATISTICS
  15. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  16. AND INDEX_NAME='idx_smart_ops_improve_query')=0,
  17. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD INDEX `idx_smart_ops_improve_query` (`TenantId`,`FactoryId`,`ModuleCode`,`Status`)',
  18. 'SELECT 1');
  19. PREPARE q_stmt FROM @q_sql;
  20. EXECUTE q_stmt;
  21. DEALLOCATE PREPARE q_stmt;
  22. SET @o_sql := IF(
  23. (SELECT COUNT(*) FROM information_schema.STATISTICS
  24. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  25. AND INDEX_NAME='idx_smart_ops_improve_owner')=0,
  26. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD INDEX `idx_smart_ops_improve_owner` (`TenantId`,`OwnerUserId`)',
  27. 'SELECT 1');
  28. PREPARE o_stmt FROM @o_sql;
  29. EXECUTE o_stmt;
  30. DEALLOCATE PREPARE o_stmt;
  31. SET @d_sql := IF(
  32. (SELECT COUNT(*) FROM information_schema.STATISTICS
  33. WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  34. AND INDEX_NAME='idx_smart_ops_improve_due')=0,
  35. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD INDEX `idx_smart_ops_improve_due` (`TenantId`,`DueDate`)',
  36. 'SELECT 1');
  37. PREPARE d_stmt FROM @d_sql;
  38. EXECUTE d_stmt;
  39. DEALLOCATE PREPARE d_stmt;
  40. SET @tenant_sql := IF(
  41. (SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS
  42. WHERE CONSTRAINT_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  43. AND CONSTRAINT_NAME='ck_improve_valid_tenant')=0,
  44. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD CONSTRAINT `ck_improve_valid_tenant` CHECK (`TenantId` IS NOT NULL AND `TenantId` NOT IN (0,1,1300000000001))',
  45. 'SELECT 1');
  46. PREPARE tenant_stmt FROM @tenant_sql;
  47. EXECUTE tenant_stmt;
  48. DEALLOCATE PREPARE tenant_stmt;
  49. SET @factory_sql := IF(
  50. (SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS
  51. WHERE CONSTRAINT_SCHEMA=DATABASE() AND TABLE_NAME='ado_smart_ops_improvement_plan'
  52. AND CONSTRAINT_NAME='ck_improve_valid_factory')=0,
  53. 'ALTER TABLE `ado_smart_ops_improvement_plan` ADD CONSTRAINT `ck_improve_valid_factory` CHECK (`FactoryId` > 0 AND `FactoryId` <> `TenantId`)',
  54. 'SELECT 1');
  55. PREPARE factory_stmt FROM @factory_sql;
  56. EXECUTE factory_stmt;
  57. DEALLOCATE PREPARE factory_stmt;