31 lines
966 B
SQL
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;
|