use strict; use warnings; use DBI; my $dbh = DBI->connect( "dbi:SQLite:dbname=test.sqlite", "", "", { RaiseError => 1 } ); $dbh->do("CREATE TABLE aaa (num INTEGER, name TEXT)"); $dbh->do("CREATE TABLE bbb (num INTEGER, name TEXT)"); my $i = 1; for (qw(alice bob carol)) { $dbh->do( "INSERT INTO aaa VALUES (?, ?)", {}, $i++, $_ ); } my $sth = $dbh->prepare("SELECT * FROM aaa"); $sth->execute; while ( my @row = $sth->fetchrow_array ) { $dbh->do( "INSERT INTO bbb VALUES (?, ?)", {}, @row ); }