Summary: | Deleting authorized values when data exists | ||
---|---|---|---|
Product: | Koha | Reporter: | Chris Cormack <chris> |
Component: | Database | Assignee: | Galen Charlton <gmcharlt> |
Status: | NEW --- | QA Contact: | |
Severity: | normal | ||
Priority: | P5 - low | CC: | jonathan.druart, koha, marjorie.barry-vila, mirko, patrick.robitaille |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=21466 | ||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: | ||
Circulation function: | |||
Bug Depends on: | 9272 | ||
Bug Blocks: |
Description
Chris Cormack
2010-05-21 01:08:58 UTC
This seems to still be valid. To reproduce I - added a value to NOT_LOAN: '-5' with value 'fish' - set an item to use that value - deleted the authorizes value. Two things happen: - DBD::mysql::st execute failed: Unknown column 'id' in 'where clause' at /home/mirko/koha/admin/authorised_values.pl line 228. - value is deleted, field shows '-5' So there is no routine to check if the value is used and there is something wrong with the deletion. The line in referenced in the error message is $sth = $dbh->prepare("DELETE FROM authorised_values_branches WHERE id = ?"); authorised_values_branches does not have a column called 'id', it is called 'av_id' (In reply to Mirko Tietgen from comment #1) > This seems to still be valid. To reproduce I > - added a value to NOT_LOAN: '-5' with value 'fish' > - set an item to use that value > - deleted the authorizes value. I find that this is still the case -- I'm not blocked from deleting an authorized value which is in use by an item. However I see no related errors in the log. (In reply to Mirko Tietgen from comment #1) > Two things happen: > - DBD::mysql::st execute failed: Unknown column 'id' in 'where clause' at > /home/mirko/koha/admin/authorised_values.pl line 228. > - value is deleted, field shows '-5' > > So there is no routine to check if the value is used and there is something > wrong with the deletion. The line in referenced in the error message is > > $sth = $dbh->prepare("DELETE FROM authorised_values_branches WHERE id = ?"); > > authorised_values_branches does not have a column called 'id', it is called > 'av_id' This is fixed by bug 9272, not related to the main problem. (In reply to Owen Leonard from comment #2) > (In reply to Mirko Tietgen from comment #1) > > This seems to still be valid. To reproduce I > > - added a value to NOT_LOAN: '-5' with value 'fish' > > - set an item to use that value > > - deleted the authorizes value. > > I find that this is still the case -- I'm not blocked from deleting an > authorized value which is in use by an item. However I see no related errors > in the log. Not sure how we could fix this problem. We will need to check all items, it will be time consuming. But we could imagine a "check" function to know if the AV is used (category linked to a framework and value in the DB field). Authorised values are used in so many places and can be user defined too - it seems impossible to introduce a reliable check here. (In reply to Katrin Fischer from comment #4) > Authorised values are used in so many places and can be user defined too - > it seems impossible to introduce a reliable check here. ;.. For AVs linked to biblio frameworks I added a test to the "search for inconsistencies" script, see bug 21466. |