INSERT INTO A (col1,col2,col3) SELECT fld1,fld2,fld3 FROM B; #### my @pats = (); my $dbh = DBI->connect("DBI:mysql:database=proyecto;host=localhost", "root", "xyz123", {'RaiseError' => 1} ); my $sth = $dbh->prepare("SELECT DISTINCT PAT FROM patentes"); $sth->execute(); while (my @row = $sth->fetchrow_array) { push @pats, $row[0]; } foreach (@pats) { # TODO: CREATE TABLE NAMED $_ HERE ? $dbh->do("INSERT INTO $_(col1,col2,col3) SELECT fld1,fld2,fld3 FROM patente WHERE pat = $_"); }