Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5450d982

Von Niclas Zimmermann vor etwa 10 Jahren hinzugefügt

  • ID 5450d982d29e8c2803e22e974ddddda4ae964dc8
  • Vorgänger 2421ad47
  • Nachfolger 6e603868

Änderung von Upgrade-Script change_taxzone_id_0

Die Tabellen ar und ap werden jetzt auch an den ID-Wechsel angepasst.

Weiterhin werden 2 Fremdschlüssel gesetzt, die durch den Wechsel
aufgefallen sind.

Unterschiede anzeigen:

sql/Pg-upgrade2/change_taxzone_id_0.pl
1 1
# @tag: change_taxzone_id_0
2
# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt.
2
# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt und setzt zwei Fremdschlüssel von Tabellen ar/ap auf tax_zones.
3 3
# @depends: convert_taxzone taxzone_default_id taxzone_sortkey
4 4
package SL::DBUpgrade2::change_taxzone_id_0;
5 5

  
......
11 11
sub run {
12 12
  my ($self) = @_;
13 13

  
14
  my $query = qq|SELECT id FROM tax_zones ORDER BY id DESC|;
14
  my $query = qq|SELECT id FROM tax_zones ORDER BY id DESC LIMIT 1|;
15 15
  my ($id) = $self->dbh->selectrow_array($query);
16 16
  $id++;
17 17

  
......
19 19
  my $sth = $self->dbh->prepare($query);
20 20
  $sth->execute || $::form->dberror($query);
21 21

  
22
  my $ref = $sth->fetchrow_hashref("NAME_lc");
22
  if (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
23 23

  
24
  $query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|;
25
  $self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]);
24
    $query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|;
25
    $self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]);
26 26

  
27
  $query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|;
28
  $self->db_query($query);
27
    $query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|;
28
    $self->db_query($query);
29 29

  
30
  $sth->finish;
30
    $query = qq|DELETE FROM tax_zones WHERE id=0|;
31
    $self->db_query($query);
32

  
33
    #Adapt other tables to the new id:
34
    $query = qq|UPDATE ar SET taxzone_id=$id WHERE taxzone_id=0|;
35
    $self->db_query($query);
36

  
37
    $query = qq|UPDATE ap SET taxzone_id=$id WHERE taxzone_id=0|;
38
    $self->db_query($query);
39
  }
31 40

  
32
  $query = qq|DELETE FROM tax_zones WHERE id=0|;
41
  #Set Constraints:
42
  $query = qq|ALTER TABLE ar ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
33 43
  $self->db_query($query);
34 44

  
45
  $query = qq|ALTER TABLE ap ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
46
  $self->db_query($query);
47

  
48
  $sth->finish;
49

  
35 50
  return 1;
36 51
} # end run
37 52

  

Auch abrufbar als: Unified diff