使用perl实现拆分数据表(mysql)并迁移数据实例(数据库怎么分离到桌面)快来看

随心笔谈9个月前发布 admin
177 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了使用Pascal语言和Firebird数据库的代码,用于自动化处理和批量插入用户数据。代码首先配置了数据库连接信息,接着设置了字符集和会话选项,以优化数据处理的效率。随后,代码使用了循环机制,每隔一定数量的记录执行一次数据插入操作。文章的核心内容在于通过代码实现了高效的数据库批量处理功能。

#!/usr/bin/perl

###################################

### author: www.jb51.net ###

### QQ群:232608061  ###

### E-mail:service@jb51.net ###

###################################

use DBI;

my $driver=”DBI:mysql”;

my $from_database=”ttlsa”;

my $from_user=”root”;

my $from_password=”123456″;

my $from_host=”localhost”;

$from_dbh=DBI->connect (“$driver:$from_database:$from_host;user=$from_user;password=$from_password”) or die “cannot connect: “. DBI->errstr;

$from_dbh->do(“set names ‘utf8′”);

$from_dbh->do(“set session autocommit=0″);

$from_dbh->do(“set session unique_checks=0″);

$max=600000;

$step=10000;

for ($i=1;$i $step_i=$i+$step;

$sql=”select * from ttlsa_users where user_id>=$i and user_id $sth=$from_dbh->prepare($sql);

$sth->execute;

@value=();

while ($row=$sth->fetchrow_hashref()) {

$uid=$row->{uid};

$email=$row->{email};

$passwd=$row->{passwd};

$user_name=$row->{user_name};

$key=substr($user_id,-1);

$value[$key].=”(‘$uid’,’$email’,’$passwd’,’$user_name’),”;

}

for (0..9) {

chop($value[$_]);

$sql=”insert into ttlsa_user_$_ (`uid`,`email`,`passwd`,`user_name`) values” . $value[$_];

$from_dbh->do(“$sql”);

}

}

$from_dbh->do(“set session autocommit=1″);

$from_dbh->do(“set session unique_checks=1″);

$sth->finish();

$from_dbh->disconnect();

© 版权声明

相关文章