While we are on this subject. What is the proper way to delete items, then volumes/call number, bibs via sql? I’m looking at deleting ~3000 withdrawn copies after we grab the ones that are last copies to tell OCLC about. I would rather not use the staff client since it seems to have problems with that many records at once.
Is it as simple as: 1. Marking all the copies deleted (Update asset.copy set deleted=true where status=withdrawn_code) 2. Updating all asset.call_number entries to deleted=true that have no non-deleted copies. 3. Updating all biblio.record_entries that have no call_numbers. Is there a db function for this that I can call directly? I’ve done a little bit of searching but I haven’t come up with anything yet. Blake mentions deleting the bibs at the end of his message, so I’m hopeful it is that easy. I think the delete just gets re-written as an update. Any help would be appreciated. Thanks Josh Stompro - LARL IT Director From: Open-ils-general [mailto:[email protected]] On Behalf Of Chris Owens Sent: Thursday, June 16, 2016 2:52 PM To: [email protected] Subject: Re: [OPEN-ILS-GENERAL] Batch deleting records Thank you all for your advice and words of caution. I would say this is yet another reason to prefer the old-fashioned book, but I wouldn't want to sound like a luddite. We will tread lightly. Chris Chris Owens Director Blanchester Public Library 110 N. Broadway Blanchester, OH 45107 937-783-3585 937-783-2910 (fax) [email protected]<mailto:[email protected]> On 6/16/2016 11:47 AM, Blake Henderson wrote: Chris, You will need to get a list of record ID's. Record buckets use record ID's. The easiest way to do that would be a SQL query. Something like this: select distinct record, isbn from ( select record,regexp_replace(value,$$\D$$,$$$$,$$g$$) \"isbn\",value from metabib.real_full_rec where record in ( select record from asset.call_number where not deleted and label=$$##URI##$$ ) ) and tag=$$020$$ and record not in(select id from biblio.record_entry where deleted) ) as a where length(isbn) in(10,13) and isbn in ( COMMA SEPARATED ISBN LIST ) order by 1; The above query has a section "COMMA SEPARATED ISBN LIST" where you will have to fill in your list like this: '4412349854', '2390340943', '2390340943345', .... .... This will return record id's that have scoped 856 URLs. If your records do not have scoped 856's, then you will need to remove this section of the query: record in ( select record from asset.call_number where not deleted and label=$$##URI##$$ ) ) and Once you have your record ID's, then you may as well delete them in SQL (make sure the list looks correct) Delete query: delete from biblio.record_entry where id in( LIST OF IDS ); -Blake- Conducting Magic MOBIUS 573-234-4513 877-312-3517 On 6/16/2016 10:17 AM, Chris Owens wrote: Is there an "easy" way to get a multiple records (50-75) into a record bucket from a list of ISBNs? We are going to have to start deleting eBook records from our system given a list of titles with ISBNs. And I am trying to avoid doing it record by record. I appreciate any advice. Thanks, Chris -- Chris Owens Director Blanchester Public Library 110 N. Broadway Blanchester, OH 45107 937-783-3585 937-783-2910 (fax) [email protected]<mailto:[email protected]>
