5 description => "Deleted biblio handling on ILL",
8 my ($dbh, $out) = @$args{qw(dbh out)};
10 unless ( column_exists( 'illrequests', 'deleted_biblio_id' ) ) {
12 ALTER TABLE illrequests
13 ADD COLUMN `deleted_biblio_id` int(11) DEFAULT NULL COMMENT 'Deleted bib linked to request'
16 say $out "Added column 'illrequests.deleted_biblio_id'";
19 # Move deleted biblio_id to deleted_biblio_id before setting the FK
23 ON illrequests.biblio_id=biblio.biblionumber
24 SET illrequests.biblio_id=NULL,
25 illrequests.deleted_biblio_id=illrequests.biblio_id
26 WHERE biblio.biblionumber IS NULL
27 AND illrequests.biblio_id IS NOT NULL
30 if ( foreign_key_exists( 'illrequests', 'illrequests_ibfk_1' ) ) {
32 ALTER TABLE illrequests
33 DROP FOREIGN KEY illrequests_ibfk_1
37 if ( !foreign_key_exists( 'illrequests', 'illrequests_bibfk' )
38 || !index_exists('illrequests', 'illrequests_bibfk') ) {
40 if ( foreign_key_exists( 'illrequests', 'illrequests_bibfk' ) ) {
42 ALTER TABLE illrequests
43 DROP FOREIGN KEY illrequests_bibfk
46 if (index_exists('illrequests', 'illrequests_bibfk')) {
48 ALTER TABLE illrequests
49 DROP INDEX illrequests_bibfk
54 ALTER TABLE illrequests
55 ADD KEY `illrequests_bibfk` (`biblio_id`),
56 ADD CONSTRAINT illrequests_bibfk FOREIGN KEY (`biblio_id`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE;
59 say $out "Added foreign key constraint 'illrequests.illrequests_bibfk'";