在工作中遇到sqlserver的数据导入mysql的问题,在网上查了一下相关资料,有用mysqlodbc的也有用其他软件导入的,都需要安装相关插件。我的问题只是数据库中一个表的导入,不需要整个数据库全部移植,所以不想那么麻烦,于是就自己尝试了一下数据格式转换的方式,呵呵,幸运的是问题解决了,而且还挺简单,拿来与大家分享一下。
基本原理sqlserver数据表--->csv文件---->导入mysql数据库。
实现步骤:
1、打开sqlserver企业管理器,选中数据库中要移植的表,点击右键选择“所有任务”---“导出数据”,按照提示点击下一步,数据源不用做改动点击下一步,目的:下拉框中选中“文本文件”,点击文件名的文本框后的按钮选择保存文件的位置,并给要导出的文件起一个名字,这里我们不妨给它起一个临时名字叫做“1.csv”(记住后缀名一定要写成csv格式,否则mysql那无法导入),然后点击下一步,按照提示点击一下步,进行到“选择目的文件格式”界面时,在源:下拉框中选择要导出的数据表,这里一定要仔细些,否则你导出的表将不是你想要的数据表,选择完后点击下一步,下一步,完成。sqlserver数据表转换成csv文件的步骤就进行完了。
2、这时候导出的csv文件是不能直接导入mysql的,因为数据没有表头,需要简单修改。你可以在sqlserver企业管理器中选中刚才导出的表点击右键,选中“设计表”
将“列名” “数据类型” “长度” 等信息抄写到纸上,然后用记事本将导出的csv文件打开,在第一行敲击回车,将第一行空出,填入刚才抄写下来的列名,格式如下:“ncid”,“ncname”,“link”(数据表列名用引号引起,之间用逗号隔开),然后保存,csv文件就修改完了。然后在桌面上建一个名为1的目录,将csv文件放在该目录中。
3、利用sqlyog将mysql打开,选择要导入的数据库,如果没有事先建一个也行,点击右键选择Import(导入),选择“import external data wizard”选项,点击下一步,在数据源类型项中选择csv,在选择目录中找到桌面上刚才所建的1的目录,点击下一步,按照提示一直点击到完成,刷新数据表,这样就在mysql中导入了一个名为1_csv的数据表,将数据表名做一下修改,如果需要还可以将数据表的数据类型和数据长度以及索引key做相关调整(这些步骤都可以通过sqlyog修改数据表功能实现),数据表导入工作到此就完成了。