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 <[EMAIL PROTECTED]>:

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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
        [EMAIL PROTECTED]

Reply via email to