in reply to My update on insert error solution
If using MySQL then consider REPLACE or INSERT ON DUPLICATE, for example
poj#!/usr/bin/perl use strict; use DBI; my $dbh = get_dbh(); my $sql = "INSERT INTO id_name (id,name) VALUES (?,?) ON DUPLICATE KEY UPDATE name=?"; my $sth = $dbh->prepare($sql); for my $data (@$data_ref){ $sth->execute( @$data{'id','name','name'} ); } sub get_dbh { my $database = "pm"; my $user = "user"; my $pw = "password"; my $dsn = "dbi:mysql:$database:localhost:3306"; my $dbh = DBI->connect($dsn, $user, $pw, { RaiseError=>1, AutoCommit=>1 } ); return $dbh; }
|
|---|