Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: How to insert 30-50K rows into MySQL DB using DBI?

by Perl300 (Friar)
on Oct 03, 2018 at 19:13 UTC ( [id://1223483]=note: print w/replies, xml ) Need Help??


in reply to [SOLVED]: How to insert 30-50K rows into MySQL DB using DBI?

Thank you for all your comments and suggestions.

I tried what huck suggested in second reply and it works perfect. I just had to add comma at the end of (?,?,?,?,?) to make it (?,?,?,?,?), to get rid of SQL syntax error.

Special thank you huck :-)

Replies are listed 'Best First'.
Re^2: How to insert 30-50K rows into MySQL DB using DBI?
by huck (Prior) on Oct 03, 2018 at 20:47 UTC

    Opps sorry, my actual code looks closer to

    sub makeinsert{ die "no table" unless ($args{table}); my $table =$args{table}; die "no table" unless ($args{dbh}); my $dbh =$args{dbh}; die "no varlist" unless ($args{varlist}); my @vl=@{$args{varlist}}; my $repeat =$args{repeat}; $repeat=1 unless ($repeat); my @q=map{'?'} @vl; my $plist=' ('.join (',',@q).') '; my @aplist; for my $ii (1..$repeat) { push @aplist,$plist; } my $plistn=join (",\n",@aplist); my $sql='INSERT INTO '.$table.' ('.join (',',@vl).' ) values '.$plistn; my $handle=$dbh->prepare($sql); die "Couldn't prepare ".$table." insert; aborting" unless defined $handle ; return $handle; } my $sth2_1000=makeinsert(dbh =>$dbh2 ,table =>'table_name' ,repeat =>1000 ,varlist =>[qw/col_1 col_2 col_3 col_4 col_5/] );
    And i missed that comma, noticing only the \n, in my haste to simplify it for you.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1223483]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-16 18:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found