Improve undo delete clause to avoid removing still referenced rows
(foreign key constraint violation)
This commit is contained in:
parent
e569d77bd2
commit
477565f6e1
@ -410,37 +410,44 @@ DELETE FROM users USING import.choix_periodes icp WHERE users.username::text = i
|
||||
SELECT setval('users_id_seq', (SELECT COALESCE(max(id),1) FROM users));
|
||||
|
||||
-- Undo 11.
|
||||
DELETE FROM scopes USING import.choix_periodes icp WHERE scopes.name::jsonb->>'fr' = icp.acp_scopes1::jsonb->>'fr';
|
||||
DELETE FROM scopes USING import.choix_periodes icp WHERE scopes.name::jsonb->>'fr' = icp.acp_scopes1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE scopes.name::jsonb->>'fr' = icp.acp_scopes1::jsonb->>'fr');
|
||||
SELECT setval('scopes_id_seq', (SELECT COALESCE(max(id),1) FROM scopes));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN acp_scopes1;
|
||||
|
||||
-- Undo 10.
|
||||
DELETE FROM chill_main_user_job cmuj USING import.choix_periodes icp WHERE cmuj.label::jsonb->>'fr' = icp.job1::jsonb->>'fr';
|
||||
DELETE FROM chill_main_user_job cmuj USING import.choix_periodes icp WHERE cmuj.label::jsonb->>'fr' = icp.job1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cmuj.label::jsonb->>'fr' = icp.job1::jsonb->>'fr');
|
||||
SELECT setval('chill_main_user_job_id_seq', (SELECT COALESCE(max(id),1) FROM chill_main_user_job));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN job1;
|
||||
|
||||
-- Undo 9.
|
||||
DELETE FROM chill_person_accompanying_period_origin cpapo USING import.choix_periodes icp WHERE cpapo.label::jsonb->>'fr' = icp.origin1::jsonb->>'fr';
|
||||
DELETE FROM chill_person_accompanying_period_origin cpapo USING import.choix_periodes icp WHERE cpapo.label::jsonb->>'fr' = icp.origin1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cpapo.label::jsonb->>'fr' = icp.origin1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_accompanying_period_origin_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_accompanying_period_origin));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN origin1;
|
||||
|
||||
-- Undo 8.
|
||||
DELETE FROM chill_person_accompanying_period_closingmotive cpapcm USING import.choix_periodes icp WHERE cpapcm.name::jsonb->>'fr' = icp.closingmotive1::jsonb->>'fr';
|
||||
DELETE FROM chill_person_accompanying_period_closingmotive cpapcm USING import.choix_periodes icp WHERE cpapcm.name::jsonb->>'fr' = icp.closingmotive1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_periodes WHERE cpapcm.name::jsonb->>'fr' = icp.closingmotive1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_accompanying_period_closingmotive_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_accompanying_period_closingmotive));
|
||||
ALTER TABLE import.choix_periodes DROP COLUMN closingmotive1;
|
||||
|
||||
-- Undo 7.
|
||||
DELETE FROM chill_person_household_position cphp USING import.choix_personnes icp WHERE cphp.label::jsonb->>'fr' = icp.household_position1::jsonb->>'fr';
|
||||
DELETE FROM chill_person_household_position cphp USING import.choix_personnes icp WHERE cphp.label::jsonb->>'fr' = icp.household_position1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cphp.label::jsonb->>'fr' = icp.household_position1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_household_position_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_position));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN household_position1;
|
||||
|
||||
-- Undo 6.
|
||||
DELETE FROM chill_person_household_composition_type cphct USING import.choix_personnes icp WHERE cphct.label::jsonb->>'fr' = icp.household_composition_type1::jsonb->>'fr' AND cphct.id > 6;
|
||||
DELETE FROM chill_person_household_composition_type cphct USING import.choix_personnes icp WHERE cphct.label::jsonb->>'fr' = icp.household_composition_type1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cphct.label::jsonb->>'fr' = icp.household_composition_type1::jsonb->>'fr');
|
||||
SELECT setval('chill_person_household_composition_type_id_seq', (SELECT COALESCE(max(id),1) FROM chill_person_household_composition_type));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN household_composition_type1;
|
||||
|
||||
-- Undo 5.
|
||||
DELETE FROM chill_person_marital_status cpms USING import.choix_personnes icp WHERE cpms.name::jsonb->>'fr' = icp.maritalstatus1::jsonb->>'fr' AND cpms.id <> 'célibat.' AND cpms.id <> 'marié'; -- existing marital status
|
||||
DELETE FROM chill_person_marital_status cpms USING import.choix_personnes icp WHERE cpms.name::jsonb->>'fr' = icp.maritalstatus1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cpms.name::jsonb->>'fr' = icp.maritalstatus1::jsonb->>'fr');
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN maritalstatus1;
|
||||
|
||||
-- Undo 4.
|
||||
@ -449,7 +456,8 @@ SELECT setval('country_id_seq', (SELECT COALESCE(max(id),1) FROM country));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN country1;
|
||||
|
||||
-- Undo 3.
|
||||
DELETE FROM chill_main_civility cmc USING import.choix_personnes ip WHERE cmc.name::jsonb->>'fr' = ip.civility1::jsonb->>'fr';
|
||||
DELETE FROM chill_main_civility cmc USING import.choix_personnes ip WHERE cmc.name::jsonb->>'fr' = ip.civility1::jsonb->>'fr'
|
||||
AND NOT EXISTS (SELECT 1 FROM import.choix_personnes WHERE cmc.name::jsonb->>'fr' = ip.civility1::jsonb->>'fr');
|
||||
SELECT setval('chill_main_civility_id_seq', (SELECT COALESCE(max(id),1) FROM chill_main_civility));
|
||||
ALTER TABLE import.choix_personnes DROP COLUMN civility1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user