Schrift
[thread]3744[/thread]

SQL Tabelle: "Insert Into Table" falls Daten nicht vo



<< >> 6 Einträge, 1 Seite
nour
 2006-11-28 13:50
#34922 #34922
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich habe den Folgenden Problem:
WIE KANN ICH MITTELS Perl überprüfen, Ob eien Datei in eine Tabelle "A " vorhanden ist? falls Nein ich sollte diese Datei in der Tabelle eintragen.

Hinweis: Datei Kann ein Zahl sein zum beispiel.


vielen Dank.
nepos
 2006-11-28 14:43
#34923 #34923
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Irgendwie kaputt :P
Siehe unten.\n\n

<!--EDIT|nepos|1164719671-->
nepos
 2006-11-28 14:45
#34924 #34924
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, bisschen wenig Infos, aber ok, mal ein Vorschlag:
Code (perl): (dl )
1
2
3
4
5
6
7
# Prüfen, ob ein Datensatz mit den einzufügenden Daten schon vorhanden ist
# selectrow_array liefert in diesem Fall was anderes als undef zurück
unless ($dbh->selectrow_array(qq{SELECT* FROM tabelle WHERE name=?},undef,'A')) {
    # Ok, selectrow_array hat nichts geliefert
    # Das heißt, wir können den Datensatz einfügen
    $dbh->do(qq{INSERT INTO tabelle(name) VALUES(?)},undef,'A');
}


Da ich nicht mehr Infos habe, kann ichs nicht genauer sagen.
nour
 2006-11-28 15:02
#34925 #34925
User since
2006-11-15
108 Artikel
BenutzerIn
[default_avatar]
Ok Hier ist eine Genau deteill :

Ich habe die folgenden 2 tabellen:
____________________________________________________
Code: (dl )
1
2
3
4
5
Root: ID   | NEID                           State:  ID     NEID
----|-----------
1 232 9 1 1213
----------------- 2 2121
2 2339 3 2329

___________________________________________________
jetzt will ich Überprüfen ob der Datei Neid="2329" von der Tabelle "Root"ist in der TAbelle "State " vorhanden ist?? FAlls NEin Muss ich erstmal

Der NEiD="2329" in der TAbelle State einfügen und in der TAbelle Root auch .


wie kann ich das lösen innerhalb meines Script :

Ich habe folgendes gemacht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
:
___________________________________________________
$query = "SELECT STATE.NEID FROM STATE ";

$sth = $dbh->prepare($query)|| die "Querry Error prepare: $DBI::errstr\n";

$execu= $sth->execute||die "Querry Error execute: $DBI::errstr\n";


if (State.NEID =Root.NEID ) { print "True\n";}
Elese {Insert Into STATE (" STATE.NEID" where STATE.NEID="2329"}

print "ID:$newdata->{NEID}
}

$sth->finish();


DANKE IM VOraus.

Grüße\n\n

<!--EDIT|renee|1164719277-->
renee
 2006-11-28 15:14
#34926 #34926
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ungetestet:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $neid = 2329;
my $query = "SELECT Root.NEID, State.NEID FROM Root, State WHERE Root.NEID = ?";
my $sth = $dbh->prepare($query) or die $dbh->errstr();
$sth->execute($neid);

my ($root,$state) = $sth->fetchrow_array();

if(not defined $state){
$dbh->do("INSERT INTO State(NEID) VALUES(?)",undef,$neid) or die $dbh->errstr();
}

if(not defined $root){
$dbh->do("INSERT INTO Root(NEID) VALUES(?)",undef,$neid) or die $dbh->errstr();
}



Allgemein: Du solltest Dir mal Wiki:[tt]use strict[/tt] anschauen!
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/
pq
 2006-11-30 09:45
#34927 #34927
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich verstehe zwar nicht ganz, was nour moechte, aber vielleicht
reicht ein einfaches "REPLACE" statt "INSERT"?
(unter mysql)\n\n

<!--EDIT|pq|1164872732-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 6 Einträge, 1 Seite



View all threads created 2006-11-28 13:50.