知识大全 数据从sqlserver导入mysql数据库的体验
Posted 数据库
篇首语:丈夫志四海,万里犹比邻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据从sqlserver导入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数据库导入 <? $cnx = odbc_connect( web admin );// web 是sqlserver中mydb的数据源名 admin 是访问mydb的用户名 是访问mydb的密码 $cur= odbc_exec( $cnx select * from user );//打开sql server中mydb数据库的user表 $num_row= ; $conn=mysql_pconnect( localhost root );// 连接mysql @mysql_select_db( mydb $conn) or die( 无法连接到数据库 请与管理员联系! );//打开mysql的mydb数据库 while( odbc_fetch_row( $cur )) //从sql server的mydb库中的user表逐条取出数据 如果对数据进行选择 可在前面的select语句中加上条件判断 $num_row++; $field = odbc_result( $cur ); // 这里的参数i( )指的是记录集中的第i个域 你可以有所选择地进行选取 fieldi得到对应域的值 然后你可以对fieldi进行操作 $field = odbc_result( $cur ); $field = odbc_result( $cur ); $field = odbc_result( $cur ); $field = odbc_result( $cur ); $field = odbc_result( $cur ); $field = timetoint($field ); //这里是对sql server中的datetime类型的字段进行相应转换处理 转换成我所需要的int型 $querystring = insert into user (id name username password recdate) values( $field $field $field $field $field ) ; mysql_query($querystring $conn); function timetoint($str) $arr =split( $str); $datestr=$arr [ ]; $timestr=$arr [ ]; $arr_date=split( $datestr); $arr_time=split( : $timestr); $year=$arr_date[ ]; $month=$arr_date[ ]; $day=$arr_date[ ]; $hour=$arr_time[ ]; $minute=$arr_time[ ]; $second=$arr_time[ ]; $time_int=mktime($hour $minute $second $month $day $year); return $time_int; ?> 将该段脚本存成sql php 在服务器上执行 就可以将服务器上sql server中mydb数据库的user表中的数据导入到mysql中mydb数据库的user表中去 其他表的操作与此雷同 就不赘述了 下面再介绍一下asp脚本实现sql server中mydb数据库的数据向mysql中mydb数据库导入 <% set conn=server createobject( nnection ) conn open web admin // web 是sqlserver中mydb的数据源名 admin 是访问mydb的用户名 是访问mydb的密码 set rs=server createobject( adodb recordset ) sql= select ID name username password datediff(s : : recdate) * reid filename fileContentType filevalue from senddate //这条sql语句实现了将datetime类型的recdate字段转化成unix时间戳的int型 rs open sql conn set conn =server createobject( nnection ) conn open myoa root q d = ? i= do while not rs eof field = rs( ) field = rs( ) field = rs( ) field = rs( ) field = rs( ) sql = insert into user(ID name username password recdate) values( &field & &field & &field & &field & &field & ) conn execute sql rs movenext i=i+ loop rs close set rs=nothing conn close set conn=nothing conn close set conn =nothing %> 以上两个是分别采用php脚本和asp脚本对user表的数据进行由sql server到mysql的导入其间我采用 种回避的方法来避免ntext image类型数据的传递 一种是将ntext字段改为nvarchar( ) 因为实际情况 原始数据中该字段的数据长度都未超过 个字 所以并没有出现数据截断 另一个手段是将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 pressed ext= rar case application/x zip pressed 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<> x then set fso=server createobject( FileSystemObject ) fName= attech &i& &ext Dir= d:\\attach\\ If fso FileExists(Dir & fName) Then fso deletefile Dir & fName If fName<> AND NOT fso FileExists(Dir & fName) Then Set strm =Server CreateObject( ADODB Stream ) strm Open strm Type= Binary strm Write filevalue strm SaveToFile Dir & fName Set strm =Nothing end if makeattach=fName end if end function 这个函数有 个输入参数 第一个是文件的contentType 第二个是文件的二进制数值 第三个是个可以区别文件名的变量 先根据contentType确定所存文件的后缀名 然后就是将二进制数值保存成指定文件名的文件 并将文件名作为输出参数返回 将返回的参数作为数据写到mysql的数据库中保存 cha138/Article/program/MySQL/201311/11203相关参考
知识大全 MySQL数据导入导出工具mysqlimport简介
MySQL数据导入导出工具mysqlimport简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
MySQL数据的导出和导入工具mysqldump 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
MySQL数据导入导出方法与工具介绍一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! )mysq
知识大全 将MySQL 5.0下的数据导入到MySQL 3.23中
将MySQL5.0下的数据导入到MySQL3.23中 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
MySQL数据导入导出方法与工具介绍二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 批处理是一
用POI将Mysql数据导入到Excel中去 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在我
知识大全 oracle,sqlserver,MySQL数据库语句对照表
oracle,sqlserver,MySQL数据库语句对照表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 SQL Server 2005和SQL Server 2000数据的相互导入
SQLServer2005和SQLServer2000数据的相互导入 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
SQLServer导出导入数据方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一导出导入SQ
导入SQLServer备份的数据库方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在树形菜单