[OPEN-ILS-DEV] Removing records - Training Opportunity...

Brandon W. Uhlman brandon.uhlman at bclibrary.ca
Wed Oct 22 18:08:57 EDT 2008


Additionally, if you want the records actually removed from the  
PostgreSQL, and not just stored with a deleted flag, you want to wrap  
all of that in a transaction dropping the rule that does bib  
protection, and then re-adding it before committing. Something like  
this:

BEGIN;
DROP RULE protect_bib_rec_delete ON biblio.record_entry;
DELETE FROM ...;
DELETE FROM ...;
DELETE FROM ...;
CREATE RULE protect_bib_rec_delete AS
     ON DELETE TO biblio.record_entry DO INSTEAD  UPDATE  
biblio.record_entry SET deleted = true;
COMMITT;

~B


Quoting James Fournie <jfournie at sitka.bclibraries.ca>:

> Hi Grant,
>
> Looks like you want to use IN instead of =
>
> # DELETE from metabib.metarecord_source_map where source IN (SELECT id
> FROM biblio.record_entry where tcn_value like 'cis%');
>
> ~James Fournie
> BC SITKA Team
>
> On Wed, Oct 22, 2008 at 1:54 PM, Grant Johnson <FGJohnson at upei.ca> wrote:
>> I don't want to change the table constraints in Evergreen.
>> But have a training opportunity for someone. :-)
>>
>> We need to delete some electronic records without items from the   
>> catalog.(for now).
>> These records have a biblio.record_entry.tcn_source of LIKE 'cis'.
>>
>> I can't delete from biblio.record_entry as it's referenced as a   
>> foreign_key in .metarecord.
>> I can't delete from .metarecord as it's referenced as a foreign key  
>>  in .metarecord_source_map.
>> I CAN remove the rows one at a time from the msm -> m -> re and the  
>>  record is gone.
>>
>> Can someone help with the syntax on how to batch delete the   
>> following..... and let me know if this is all wrong!
>>
>> I know what this means - and am looking up how to build the syntax tonight:
>>  - ERROR:  more than one row returned by a subquery used as an   
>> expression... :-)
>>
>> # DELETE from metabib.metarecord_source_map  where source = (SELECT  
>>  id FROM biblio.record_entry where tcn_value like 'cis%');
>> # DELETE from metabib.metarecord where master_record = ((SELECT id   
>> FROM biblio.record_entry where tcn_value like 'cis%');
>> # DELETE from biblio.record_entry where tcn_value like 'cis%');
>>
>>
>> Table References:
>> biblio.record_entry
>> id = 14497
>>
>> metabib.metarecord
>> id=17448     master_record=14497
>>
>> metaib.metarecord_source_map
>> id=14710      metarecord=17448    source=14497
>> --
>>
>> F. Grant Johnson
>>  Systems Coordinator
>>  Robertson Library
>>  University of Prince Edward Island
>>
>>
>



======================================
Brandon W. Uhlman, Systems Consultant
Public Library Services Branch
British Columbia Ministry of Education
Vancouver, BC (and Lillooet, BC)

Phone: (604) 660-2972 or (250) 256-0344
E-mail: brandon.uhlman at gov.bc.ca
         brandon.uhlman at bclibrary.ca



More information about the Open-ils-dev mailing list