View | Details | Raw Unified | Return to bug 21901
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_21901.perl (-10 / +28 lines)
Lines 34-42 if( CheckVersion( $DBversion ) ) { Link Here
34
    |);
34
    |);
35
35
36
    unless ( foreign_key_exists( 'serial', 'serial_ibfk_1' ) ) {
36
    unless ( foreign_key_exists( 'serial', 'serial_ibfk_1' ) ) {
37
        $dbh->do(q|
37
        my $serials = $dbh->selectall_arrayref(q|
38
            DELETE FROM serial WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
38
            SELECT serialid FROM serial WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
39
        |);
39
        |, { Slice => {} });
40
        if ( @$serials ) {
41
            warn q|WARNING - The following serials are deleted, they were not attached to an existing bibliographic record (serialid): | . join ", ", map { $_->{serialid} } @$serials;
42
            $dbh->do(q|
43
                DELETE FROM serial WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
44
            |);
45
        }
40
        $dbh->do(q|
46
        $dbh->do(q|
41
            ALTER TABLE serial
47
            ALTER TABLE serial
42
            ADD CONSTRAINT serial_ibfk_1 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE
48
            ADD CONSTRAINT serial_ibfk_1 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE
Lines 49-57 if( CheckVersion( $DBversion ) ) { Link Here
49
    |);
55
    |);
50
56
51
    unless ( foreign_key_exists( 'serial', 'serial_ibfk_2' ) ) {
57
    unless ( foreign_key_exists( 'serial', 'serial_ibfk_2' ) ) {
52
        $dbh->do(q|
58
        my $serials = $dbh->selectall_arrayref(q|
53
            DELETE FROM serial WHERE subscriptionid NOT IN (SELECT subscriptionid FROM subscription)
59
            SELECT serialid FROM serial WHERE subscriptionid NOT IN (SELECT subscriptionid FROM subscription)
54
        |);
60
        |, { Slice => {} });
61
        if ( @$serials ) {
62
            warn q|WARNING - The following serials are deleted, they were not attached to an existing subscription (serialid): | . join ", ", map { $_->{serialid} } @$serials;
63
            $dbh->do(q|
64
                DELETE FROM serial WHERE subscriptionid NOT IN (SELECT subscriptionid FROM subscription)
65
            |);
66
        }
55
        $dbh->do(q|
67
        $dbh->do(q|
56
            ALTER TABLE serial
68
            ALTER TABLE serial
57
            ADD CONSTRAINT serial_ibfk_2 FOREIGN KEY (subscriptionid) REFERENCES subscription (subscriptionid) ON DELETE CASCADE ON UPDATE CASCADE
69
            ADD CONSTRAINT serial_ibfk_2 FOREIGN KEY (subscriptionid) REFERENCES subscription (subscriptionid) ON DELETE CASCADE ON UPDATE CASCADE
Lines 90-98 if( CheckVersion( $DBversion ) ) { Link Here
90
    |);
102
    |);
91
103
92
    unless ( foreign_key_exists( 'subscription', 'subscription_ibfk_3' ) ) {
104
    unless ( foreign_key_exists( 'subscription', 'subscription_ibfk_3' ) ) {
93
        $dbh->do(q|
105
        my $subscriptions = $dbh->selectall_arrayref(q|
94
            DELETE FROM subscription WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
106
            SELECT subscriptionid FROM subscription WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
95
        |);
107
        |, { Slice => {} });
108
        if ( @$subscriptions ) {
109
            warn q|WARNING - The following subscriptions are deleted, they were not attached to an existing bibliographic record (subscriptionid): | . join ", ", map { $_->{subscriptionid} } @$subscriptions;
110
111
            $dbh->do(q|
112
                DELETE FROM subscription WHERE biblionumber NOT IN (SELECT biblionumber FROM biblio)
113
            |);
114
        }
96
        $dbh->do(q|
115
        $dbh->do(q|
97
            ALTER TABLE subscription
116
            ALTER TABLE subscription
98
            ADD CONSTRAINT subscription_ibfk_3 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE
117
            ADD CONSTRAINT subscription_ibfk_3 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE
99
- 

Return to bug 21901