Извлечение и кеширование имен столбцов для вашей таблицы с использованием атрибута оператора NAME
my $sth = $dbh->prepare('SELECT * FROM my_table where 1=0');
$sth->execute;
my $cols = $sth->{NAME};
, затем использование $ cols для создания вставки ... выберите, используя некоторую функцию замены для внедренияВаши модификации в избранном.
my %mods_for_column = ( 'foo' => 'foo+10', 'bar' => 'trim(bar)' );
my $inscols = join(',', @$cols);
my $selcols = join(',',
map { exists($mods_for_column($_)) ? $mods_for_column($_) : $_ } @$cols
);
my $sql = "insert into my_table ($inscols) select $selcols from my_table where mumble...";