快捷搜索:

从SQL server数据库导入Mysql数据库的体验

因事情必要,要将寄放在sql server数据库中的数据整个导入到mysql数据库中,在网上汇集相关资料,找到两种措施,现在分手谈谈对他们的见地。

第一种是安装mysql ODBC,使用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种措施很简便,然则针对实际利用有很多弊端,最主要表现便是数据类型问题,首先,sql server数据库中

的ntext,image等数据类型的数据无法直接写入到mysql数据库中,听说只要稍加篡改就可以,可惜偶这只菜鸟还没想到若何篡改,其次,由于偶在mysql中的数据库设计中将光阴都设成int型(保存的是光阴戳),以是在数据导过来后,就会呈现冲突,再次,这种措施天生的mysql数据表的字段类型都不很相宜,以是此种措施我感觉不能提倡。

第二种是使用php或asp脚原先实现数据的导入功能,这种措施必要编写法度榜样,但机动性大年夜,操作也不是那么艰苦,统统都尽在你的掌握之中,现简单先容一下该措施

条件前提是你的mysql情况已经搭建好了,先建好目标数据库,再将所有的表布局用sql语句天生,现在万事具备,只缺数据了。

可以经由过程下面的php脚原先实现sql server中mydb数据库的user表中数据向mysql中mydb数据库导入

将该段脚本存成sql.php,在办事器上履行,就可以将办事器上sql server中mydb数据库的user表中的数据导入到mysql中mydb数据库的user表中去。其他表的操作与此雷同,就不赘述了。

下面再先容一下asp脚本实现sql server中mydb数据库的数据向mysql中mydb数据库导入

以上两个是分手采纳php脚本和asp脚本对user表的数据进行由sql server到mysql的导入其间我采纳2种逃避的措施来避免ntext,image类型数据的通报,一种是将ntext字段改为nvarchar(4000),由于实际环境,原始数据中该字段的数据长度都未跨越4000个字,以是并没有呈现数据截断,另一个手段是将image类型数据掏出来写到文件中,以文件形式保存,将文件路径存到数据库中,措施见下:

function makeattach(fileContentType,filevalue,i)

select case fileContentType

case "application/msword"

ext="doc"

case "application/vnd.ms-excel"

ext="exl"

case "application/vnd.ms-powerpoint"

ext="pps"

case "application/x-rar-compressed"

ext="rar"

case "application/x-zip-compressed"

ext="zip"

case "image/gif"

ext="gif"

case "image/pjpeg"

ext="jpg"

case "text/plain"

ext="txt"

case else

ext="x"

end select

if ext"" AND NOT fso.FileExists(Dir & fName) Then

Set strm1=Server.CreateObject("ADODB.Stream")

strm1.Open

strm1.Type=1 'Binary

strm1.Write filevalue

strm1.SaveToFile Dir & fName,2

Set strm1=Nothing

end if

makeattach=fName

end if

end function

这个函数有3个输入参数,第一个是文件的contentType,第二个是文件的二进制数值,第三个是个可以差别文件名的变量,先根据contentType确定所存文件的后缀名,然后便是将二进制数值保存成指定文件名的文件,并将文件名作为输出参数返回,将返回的参数作为数据写到mysql的数据库中保存。

光阴慌忙,先总结到这里,盼望这些翰墨能对有必要的人有些赞助,少走些弯路,谢谢您的涉猎

您可能还会对下面的文章感兴趣: