Schrift
[thread]12034[/thread]

ALTER TABLE

Leser: 1


<< >> 9 Einträge, 1 Seite
olliwest
 2008-06-18 11:46
#111164 #111164
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich würde gerne über den Befehl:
Code: (dl )
1
2
my $alter_table =$dbh->prepare("ALTER TABLE job ADD host VARCHAR(20)");
my $query_host = $dbh->prepare("INSERT INTO job(host) VALUES('$inhalt9[0]')");

eine Spalte in eine bestehende Tabelle hinzufügen und füllen.
In der Spalte soll immer der gleiche Wert stehen, der Wert steht in einem Array
Code: (dl )
1
2
$alter_table->execute();
$query_host->execute();


leider klappt das nicht so richtig, es wird zwar die Spalte angelegt, aber es wird auch eine Zeile erzeugt in der NULL steht.

kann mir da jemend weiterhelfen

danke & gruß Olli
renee
 2008-06-18 11:52
#111166 #111166
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schonmal angeschaut, was in dem Array @inhalt9 steht?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
olliwest
 2008-06-18 12:04
#111168 #111168
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
hi renee,

ja es steht nur ein Wert drin, und den sprech ich ja mit $inhalt9[0] an.

ich schreibe ja aus verschieden Arrays in die Tabelle, und ich will in die letzte Spalte der Tabelle den "Hostnamen" reinschreiben.

wenn ich das Füllen so mache:
Code: (dl )
1
2
3
4
5
for my $zeile(@inhalt9)
{
#next unless $zeile;
$query_host->execute($zeile) or warn $dbh->errstr;
}


Dann schreibt er mit die Werte unter die anderen. Also es werden Zeilen hinzugefügt.
olliwest
 2008-06-18 12:08
#111169 #111169
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
ich meine natürlich wenn ich die Tabelle so fülle:
Code (perl): (dl )
1
2
3
4
5
for my $zeile(@inhalt9)
   {
   #next unless $zeile;
   $query_host->execute() or warn $dbh->errstr;
   }

Dann schreibt er mit die Werte unter die anderen. Also es werden Zeilen hinzugefügt.


wenn ich es so probiere:
Code (perl): (dl )
1
2
3
4
5
for my $zeile(@inhalt9)
   {
   #next unless $zeile;
   $query_host->execute($zeile) or warn $dbh->errstr;
   }

da steht immer NULL drin, aber es werden keine neuen Zeilen erstellt.
olliwest
 2008-06-18 12:15
#111170 #111170
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
habe das Problem anderst gelöst!!

Danke & Gruß Olli
renee
 2008-06-18 12:32
#111171 #111171
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
olliwest+2008-06-18 10:08:05--
ich meine natürlich wenn ich die Tabelle so fülle:
Code (perl): (dl )
1
2
3
4
5
for my $zeile(@inhalt9)
   {
   #next unless $zeile;
   $query_host->execute() or warn $dbh->errstr;
   }

Dann schreibt er mit die Werte unter die anderen. Also es werden Zeilen hinzugefügt.
Ist klar, bei einem "INSERT INTO...". Wenn das muss es ein "UPDATE" sein (ist mir bei Deinem ersten Post auch nicht gleich aufgefallen).

Quote
wenn ich es so probiere:
Code (perl): (dl )
1
2
3
4
5
for my $zeile(@inhalt9)
   {
   #next unless $zeile;
   $query_host->execute($zeile) or warn $dbh->errstr;
   }

da steht immer NULL drin, aber es werden keine neuen Zeilen erstellt.

NULL ist der Defaultwert beim Anlegen einer neuen Spalte. Das execute wird hier gar nicht ausgeführt und eigentlich solltest Du eine Warnung bekommen...

Du kannst bei dem "ALTER TABLE ..." auch gleich einen Defaultwert mit angeben...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nepos
 2008-06-18 12:32
#111172 #111172
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Und wie? Könnte eventuell andere auch interessieren...
renee
 2008-06-18 13:38
#111180 #111180
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
nepos+2008-06-18 10:32:59--
Und wie? Könnte eventuell andere auch interessieren...

Meinst Du mich oder olliwest??

Defaultwert beim Hinzufügen einer Spalte setzen: [sql]ALTER TABLE job ADD host VARCHAR(20) DEFAULT 'defaultwert'[/sql]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nepos
 2008-06-18 13:50
#111183 #111183
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
@renee: Ich meinte den olliwest.
<< >> 9 Einträge, 1 Seite



View all threads created 2008-06-18 11:46.