17 lines
959 B
MySQL
17 lines
959 B
MySQL
|
|
-- Running upgrade f3a8c2d61b47 -> 7f4f7b918bc4
|
||
|
|
|
||
|
|
UPDATE approval_orders ao JOIN (SELECT id, ROW_NUMBER() OVER ( PARTITION BY order_type, ref_id ORDER BY id) AS rn FROM approval_orders WHERE (order_type, ref_id) IN ( SELECT order_type, ref_id FROM approval_orders GROUP BY order_type, ref_id HAVING COUNT(*) > COUNT(DISTINCT version_no))) t ON ao.id = t.id SET ao.version_no = t.rn;
|
||
|
|
|
||
|
|
SET @uk_exists := (SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = 'approval_orders' AND CONSTRAINT_NAME = 'uk_approval_orders_order_type_ref_version');
|
||
|
|
|
||
|
|
SET @ddl := IF(@uk_exists = 0, 'ALTER TABLE approval_orders ADD CONSTRAINT uk_approval_orders_order_type_ref_version UNIQUE (order_type, ref_id, version_no)', 'DO 0');
|
||
|
|
|
||
|
|
PREPARE stmt FROM @ddl;
|
||
|
|
|
||
|
|
EXECUTE stmt;
|
||
|
|
|
||
|
|
DEALLOCATE PREPARE stmt;
|
||
|
|
|
||
|
|
UPDATE alembic_version SET version_num='7f4f7b918bc4' WHERE alembic_version.version_num = 'f3a8c2d61b47';
|
||
|
|
|