Files
BMS/bms-back/sql/price/prc_order_ext_fk_fix.sql
T
2026-10-16 17:27:11 +08:00

31 lines
966 B
SQL

-- Fix 1452: empty orphan prc_order_ext then add FK to prc_order
-- Confirm DB = bms, then run in order.
SELECT DATABASE() AS current_db;
SELECT COUNT(*) AS ext_rows_before FROM prc_order_ext;
SELECT COUNT(*) AS order_rows FROM prc_order;
TRUNCATE TABLE prc_order_ext;
SELECT COUNT(*) AS ext_rows_after FROM prc_order_ext;
-- Drop failed/partial FK name if present (ignore error if missing)
SET @fk := (
SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'prc_order_ext'
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
AND CONSTRAINT_NAME = 'fk_order_ext_order'
LIMIT 1
);
SET @sql := IF(
@fk IS NOT NULL,
'ALTER TABLE prc_order_ext DROP FOREIGN KEY fk_order_ext_order',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
ALTER TABLE prc_order_ext
ADD CONSTRAINT fk_order_ext_order
FOREIGN KEY (order_id) REFERENCES prc_order (order_id) ON DELETE CASCADE;