- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server数据库导入MySQL数据库体验
SQL Server数据库导入MySQL数据库体验
因工作需要,要将存放在SQL Server数据库中的数据全部导入到MySQL数据库中,在网
上搜集相关资料,找到两种方法,现在分别谈谈对他们的看法。
第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据
的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问
题,首先,sqlserver数据库中的ntext,image等数据类型的数据无法直接写入到mysql数据
库中,据说只要稍加改动就可以,可惜偶这只菜鸟还没想到如何改动,其次,因为偶在mysql
中的数据库设计中将时间都设成int型(保存的是时间戳),所以在数据导过来后,就会出现
冲突,再次,这种方法生成的mysql数据表的字段类型都不很合适,所以此种方法我觉得不
能提倡。
第二种是利用PHP或ASP脚本来实现数据的导入功能,这种方法需要编写程序,但灵活性
大,操作也不是那么困难,一切都尽在你的掌握之中,现简单介绍一下该方法。前提条件是
你的mysql环境已经搭建好了,先建好目标数据库,再将所有的表结构用sql语句生成,现在
万事具备,只缺数据了。
可以通过下面的php脚本来实现sql server中mydb数据库的user表中数据向mysql中
mydb数据库导入:
?
$cnx = odbc_connect(‘Web, admin, 123456’);
//web‘是sqlserver中mydb的数据源名,
admin’是访问mydb的用户名,‘123456’是访问mydb的密码
$cur= odbc_exec( $cnx, select * from user );
//打开sql server中mydb数据库的user表
$num_row=0;
$conn=mysql_pconnect(“localhost”,“root”,“123456”);
// 连接mysql
@mysql_select_db(‘mydb,$conn) or
die(“无法连接到数据库,请与管理员联系!”);
//打开mysql的mydb数据库
while( odbc_fetch_row( $cur ))
//从sql server的mydb库中的user表逐条取出数据,如果对数据进行选择,
可在前面的select语句中加上条件判断
{
$num_row++;
$field1 = odbc_result( $cur, 1 );
// 这里的参数i(1,2,3)指的是记录集中的第i个域,
你可以有所选择地进行选取,fieldi得到对应域的值,然后你可以对fieldi进行操作
$field2 = odbc_result( $cur, 2 );
$field3 = odbc_result( $cur, 3 );
$field4 = odbc_result( $cur, 4 );
$field5 = odbc_result( $cur, 5 );
$field6 = odbc_result( $cur, 6 );
$field5 = timetoint($field5); //这里是对sql server中的datetime类型
的字段进行相应转换处理,转换成我所需要的int型
$querystring = “insert into user
(id,name,username,password,recdate)
values($field1,$field2,$field3,$field4,$field5’)” ;
mysql_query($querystring,$conn);
}
function timetoint($str){
$arr1=split(“ ”,$str);
$datestr=$arr1[0];
$timestr=$arr1[1];
$arr_date=split(“-”,$datestr);
$arr_time=split(“:”,$timestr);
$year=$arr_date[0];
$month=$arr_date[1];
$day=$arr_date[2];
$hour=$arr_time[0];
$minute=$arr_time[1];
$second=$arr_time[2];
$time_int=
文档评论(0)