odbc mysql导出access_如何把ACCESS数据库中的数据导入到Mysql数据库中

1. 使用select * from table_name into outfile “file_name”;

2. 使用mysqldump实用程序

下面我们来举例说明:

假设我们的数据库中有一个库为samp_db,一个表为samp_table.现在要把samp_table的数据导出.则我们可以利用以下方法来实现:

在Mysql提示符下打入select * from samp_table into outfile “file_name”;

在系统命令提示符下打入mysqldump –u root samp_db samp_table >samp.sql

(当然mysqldump有很多选项.如 -d 表示只导出表结构; -t 表示只导入表数据)

如何来处理数据的导入:一般我们在系统命令提示符下打入mysqlimport –u root samp_db samp_table.txt(注意:这个TXT文件名必须以表的名字命名).对于mysqldump导出的数据我们还可以用mysql –u root samp_db < file_name来导入.在Mysql提示符下我们用Load data infile “file_name” into table samp_table.

另外除了以上方法,对于移动后的数据库系统与原系统一致的前提下,我们可以通过文件的拷贝来实现数据的导入与导出.首先我们用mysqladmin –u root variables(在系统命令提示符下)或者用show variables;(在Mysql提示符下)来找到datadir.如在我的环境下,此目录在c:mysqldata.然后对其中的一些文件进行拷贝.一切ok!

有了以上知识后,我们进入正题:如何把ACCESS的数据导入到Mysql中.

首先我们把数据从ACCESS中导出为文本文件.在导出过程中注意选择好字段分隔符和文本标识符,且查看一下文本文件,确定一个记录是否在同一行上,如不是,则手工把回车键除掉.假如我们导出的文本文件为c:samp_table.txt.其内容如下:

1,张新化,男

2,江先进,女

接下来我们用mysqlimport –u root –fields-terminated-by=”,” samp_db samp_table.txt

或者用load data infile “c:\samp_table.txt” into table samp_table fields terminated by “,”;

去试一下(注意转义字符),是不是一切ok!如果还不行,请仔细看一下具体命令的帮助.下面列出一些选项:

--fields-enclosed-by=char 指明列值应包括在指定的字符中.通常用引号.缺省时,假定列值不包括在任何字符中.

--fields-escaped-by=char 表示用于转义特殊字符的转义符.缺省时表示无转义符

--fields-terminated-by=char 指定分隔列的字符.缺省时假定列值由制表符分隔.

--lines-terminated-by=str 指定结束输入行的串(可以是多字符的).缺省时假定由换行符终止行.

补充1

dim driverName,chs

driverName="Driver={mysql odbc 3.51 driver};server=localhost;database=discuz;uid=root;pwd=;"

set conn=server.createobject("adodb.connection")

conn.open driverName

Set conns=Server.CreateObject("ADODB.Connection")

ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("news.mdb")&""

On Error Resume Next

Conns.open ConnStr

If Err Then

Err.Clear

Set Conns = Nothing

Response.Write "连接数据库错误……"

Response.End

End If

'之前先执行下面这一句,这句是解决读取数据库乱码问题的关键

set chs=conn.Execute("SET NAMES 'gb2312'")

IntId = Request.QueryString("IntId")

If Len(IntId)<1 Or IsNumeric(IntId)=False Then

IntId=0

Else

IntId=CLng(IntId)

End If

Set Rs = Server.CreateObject("Adodb.Recordset")

'取得当前处理的数据

Set Rs = Server.CreateObject("Adodb.Recordset")

Rs.Open "Select top 1 * From info Where id>"&IntId&" Order by id asc",conns,1,1

If Not Rs.Eof Then

aid=Rs("id")

Title=Trim(Rs("Title"))

Content=Trim(Rs("Content"))

Content=Replace(Content," "," ")

Content=Replace(Content,"?","")

Content = Replace(Content, "
", CHR(10))

Content = Replace(Content, CHR(13), CHR(10))

Content = Replace(Content, CHR(10)&CHR(10), CHR(10))

Else

Response.Write "处理完毕!"

Response.End()

End If

Rs.Close

'取得最大pid

Rs.Open "Select * FROM cdb_posts order by pid desc limit 1",Conn,1,1

NewPid=Rs("pid")+1

Rs.Close

'取得最大dateline

Rs.Open "Select * FROM cdb_threads order by dateline desc limit 1",Conn,1,1

NewDateline=Rs("dateline")+1

Rs.Close

'insert

'取得最大tid

Rs.Open "Select * FROM cdb_threads order by tid desc limit 1",Conn,1,1

NewTid=Rs("tid")+1

Rs.Close

'写入cdb_threads表

Rs.Open "Select * FROM cdb_threads where 1=2",Conn,1,3

Rs.Addnew

Rs("tid")=NewTid

Rs("fid")=10

Rs("iconid")=0

Rs("typeid")=0

Rs("readperm")=0

Rs("price")=0

Rs("authorid")=1

Rs("dateline")=NewDateline

Rs("lastpost")=NewDateline

Rs("views")=0

Rs("replies")=0

Rs("displayorder")=0

Rs("highlight")=0

Rs("digest")=0

Rs("rate")=0

Rs("blog")=0

Rs("special")=0

Rs("p_w_upload")=0

Rs("subscribed")=0

Rs("moderated")=0

Rs("closed")=0

Rs("itemid")=0

Rs("supe_pushstatus")=0

Rs.update

Rs.Close

Sql2="update cdb_threads set author='admin',subject='"&Title&"',lastposter='admin' where tid="&NewTid

Conn.execute(sql2)

'----------------------------------

'写入cdb_posts

Rs.Open "Select * FROM cdb_posts where 1=2",Conn,1,3

Rs.Addnew

Rs("pid")=NewPid

Rs("fid")=10

Rs("tid")=NewTid

Rs("first")=1

Rs("authorid")=1

Rs("dateline")=NewDateline

Rs("invisible")=0

Rs("anonymous")=0

Rs("usesig")=0

Rs("htmlon")=0

Rs("bbcodeoff")=-1

Rs("smileyoff")=-1

Rs("parseurloff")=0

Rs("p_w_upload")=0

Rs("rate")=0

Rs("ratetimes")=0

Rs("status")=0

Rs.update

Rs.Close

Set Rs = Nothing

Sql2="update cdb_posts set author='admin',subject='"&Title&"',message='"&Content&"',useip='127.0.0.1' where pid="&NewPid

Conn.execute(sql2)

Response.Write "

已经成功转移了 "&IntId&"条数据,数据编号是 "&aid&"
"

Response.Write ""

%>

补充2

利用PHP,将ACCESS数据导入MYSQL(表与字段不相同)的处理[转载]

/**

*利用COM打开ACCESS,然后正常插入到数据表中

*

* @Author    袁相宜

* @Date       2006/09/26

*/

//利用COM打开ACCESS数据表

$conn = @new com("ADODB.Connection") or die("ADO连接创造失败");

$connstr = "Provider=MSDASQL.1;Data Source=test;";

$conn->open($connstr);

$rs = @new com("ADODB.RecordSet") or die("ADO记录集创建失败");

$db = "SELECT * FROM reg";

$rs->Open($db,$conn,1,1);

$conn = mysql_connect("localhost","root","") or die("连接主机失败");

mysql_query('set names "gb2312"');

mysql_select_db("neugd") or die("打开数据库失败");

//循环取出,插入到MYSQL数据表的相应字段中!

while(!$rs->eof)

{

$a6 = $rs->Fields["a6"];

if (strlen($a6) > 30)

{

$a6 = substr($a6,0,15);

$a6 = $a6 . "..";

}

$query = "INSERT INTO sz_schoolfellow SET

s_account = '{$rs->Fields["a1"]}',

s_ps = '{$rs->Fields["a2"]}',

s_name = '{$rs->Fields["a1"]}',

s_neckname = '{$rs->Fields["a1"]}',

s_sex = '{$rs->Fields["a3"]}',

s_hometown = '{$a6}',

s_phone = '{$rs->Fields["a8"]}',

s_email = '{$rs->Fields["a5"]}',

s_qq = '{$rs->Fields["a11"]}',

s_hits = 0,

s_rank = 1,

s_check = 1

;";

echo $query . "
";

mysql_query($query) or die("插入失败");

$rs->MoveNext();

}

?>

?2009 Baidu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值