File: /www/exchange0old/sql/custom/delete-credebtor-data.sql
/* script to delete multiple test Credebtors from Exchange 2.0 database */
/* comma separated list of long Credebtor Reference IDs */
SET @credebtor_reference_id_list = '20211130007664,20190903006411,20190903006417,20190903006416,20190903006415,20190903006414,20190903006413,20190903006412,20210204007449,20171114004169,20190206006115,20190611006224,20190828006401,20190828006403,20190829006405,20190527006209';
/* get short credebtor ID for the selected Credebtor(s) using {long} Credebtor ID(s) */
SELECT @credebtor_id_list := GROUP_CONCAT(debtor_id) FROM debtors_detail WHERE FIND_IN_SET(debtor_reference_id, @credebtor_reference_id_list);
/* get credebtor address id(s) */
SELECT @address_id_list := GROUP_CONCAT( aid )
FROM (
SELECT address_id as aid FROM debtors_detail WHERE FIND_IN_SET(debtor_id, @credebtor_id_list)
UNION SElECT billing_address_id as aid FROM debtors_detail WHERE FIND_IN_SET(debtor_id, @credebtor_id_list)
UNION SElECT contact_address_id as aid FROM debtors_detail WHERE FIND_IN_SET(debtor_id, @credebtor_id_list)
) as T;
/* delete credebtor address records */
DELETE FROM address_details WHERE FIND_IN_SET(address_id, @address_id_list);
/* delete credebtor contacts records */
DELETE FROM debtor_contacts WHERE FIND_IN_SET(debtor_id, @credebtor_id_list);
/* delete credebtor bank details records */
DELETE FROM debtor_bank_details WHERE FIND_IN_SET(debtor_id, @credebtor_id_list);
/* delete credebtor details records */
DELETE FROM debtors_detail WHERE FIND_IN_SET(debtor_id, @credebtor_id_list);
/* delete credebtor relation records */
DELETE FROM debtor_relation WHERE FIND_IN_SET(debtor_id, @credebtor_id_list);