DB structure changes
Posted by mholmes on 30 Oct 2014 in Activity log
Made some minor db changes at SF's request. I ported over the "Linked titles" field created for convenience in the backup db to the main db, since this seems useful; and I also re-implemented the triggers which create the own_desc lookup field in the owners table, using this (tested in dev, implemented in live, and actually run in four steps for caution's sake):
/* This file rebuilds the existing triggers for the own_desc field. */ DELIMITER $$ /* First delete the existing triggers. */ DROP TRIGGER IF EXISTS `own_desc_insert`$$ DROP TRIGGER IF EXISTS `own_desc_update`$$ /* Now recreate the contents of the own_desc field. */ UPDATE `owners` SET `own_desc` = CASE WHEN (LENGTH(`own_surname`) > 0 AND LENGTH(`own_forenames`) > 0 AND LENGTH(`own_street_num`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_surname`,_utf8', ',`own_forenames`,_utf8' : ',`own_street_num`,_utf8', ',`own_street`) WHEN (LENGTH(`own_surname`) > 0 AND LENGTH(`own_forenames`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_surname`,_utf8', ',`own_forenames`,_utf8' : ',`own_street`) WHEN (LENGTH(`own_surname`) > 0 AND LENGTH(`own_forenames`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_surname`,_utf8', ',`own_forenames`,_utf8' : (no address)') WHEN (LENGTH(`own_surname`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_surname`,_utf8' (no forenames or address)') WHEN (LENGTH(`own_institution_name`) > 0 AND LENGTH(`own_street_num`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_institution_name`,_utf8' : ',`own_street_num`,_utf8', ',`own_street`) WHEN (LENGTH(`own_institution_name`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_institution_name`,_utf8' : ',`own_street`) WHEN (LENGTH(`own_institution_name`) > 0) THEN concat(`own_owner_id`,_utf8'. ',`own_institution_name`,_utf8' : (no address)') WHEN (LENGTH(`own_street_num`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',_utf8' : (no name): ',`own_street_num`,_utf8', ',`own_street`) WHEN (LENGTH(`own_street_num`) > 0 AND LENGTH(`own_street`) > 0) THEN concat(`own_owner_id`,_utf8'. ',_utf8' : (no name or street number): ',`own_street`) ELSE concat(`own_owner_id`,_utf8'. ',_utf8'(no name or address)') END; $$ /* Now recreate the triggers. */ CREATE TRIGGER `own_desc_insert` BEFORE INSERT ON `owners` FOR EACH ROW BEGIN SET NEW.`own_desc` = CASE WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : (no address)') WHEN (LENGTH(NEW.`own_surname`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8' (no forenames or address)') WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_institution_name`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : (no address)') WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',_utf8' : (no name): ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',_utf8' : (no name or street number): ',NEW.`own_street`) ELSE concat(NEW.`own_owner_id`,_utf8'. ',_utf8'(no name or address)') END; END; $$ CREATE TRIGGER `own_desc_update` BEFORE UPDATE ON `owners` FOR EACH ROW BEGIN SET NEW.`own_desc` = CASE WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_surname`) > 0 AND LENGTH(NEW.`own_forenames`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8', ',NEW.`own_forenames`,_utf8' : (no address)') WHEN (LENGTH(NEW.`own_surname`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_surname`,_utf8' (no forenames or address)') WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_institution_name`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_institution_name`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',NEW.`own_institution_name`,_utf8' : (no address)') WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',_utf8' : (no name): ',NEW.`own_street_num`,_utf8', ',NEW.`own_street`) WHEN (LENGTH(NEW.`own_street_num`) > 0 AND LENGTH(NEW.`own_street`) > 0) THEN concat(NEW.`own_owner_id`,_utf8'. ',_utf8' : (no name or street number): ',NEW.`own_street`) ELSE concat(NEW.`own_owner_id`,_utf8'. ',_utf8'(no name or address)') END; END; $$ DELIMITER ;