First you will need to check if the record is already there
assuming FuelCrd is the unique value in the table (cardlock)

'SELECT FuelCrd FROM cardlock WHERE FuelCrd = $FuelCrd';

if the SELECT does return a value then the record is there.
In this case you will need issue an UPDATE statement

'UPDATE cardlock SET TrkID=$TrkID, FuelCmp=$FuelCmp WHERE FuelCrd =
$FuelCrd';

Otherwise, use the INSERT statement you have.



----- Original Message -----
From: "Scott Taylor" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 31, 2002 9:34 PM
Subject: SQL table updates


> Hello all,
>
> Can anyone tell me how to make this code work, so that, if the record
> already exists, just update the values instead of creating a new record?
>
> open(InFile, "fuelcrd") || die "Can not open file: $!\n";
> while(<InFile>){
>          chomp;
>          my ($FuelCrd, $TrkID, $FuelCmp) = split(/,/,$_);
>          $FuelCrd =~ s/\"//g;
>          $TrkID   =~ s/\"//g;
>          $FuelCmp =~ s/\"//g;
>          chomp($FuelCrd, $TrkID, $FuelCmp);
>          print "$FuelCrd, $TrkID, $FuelCmp\n";
>          $SQL = qq[insert into cardlock (cardno, trkid, fuelcmp)
>                      values ('$FuelCrd', '$TrkID', '$FuelCmp')];
>          $sth = $dbh->prepare($SQL) || die "$SQL\n$!\n";
>          $sth->execute || die "$SQL\n$!\n";
> }
> close InFile;
>
> $sth->finish;
> $dbh->disconnect;
>
> ----
>
> My pseudo code looks like this:
>
> find first record in table where id = 'blah'
>      if not available record then create record.
>      assign values to record.
>
> Cheers.
>
> Scott.
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to