zoukankan      html  css  js  c++  java
  • sqlserver与mysql中vachar(n)中遇到的坑

    前两天在做将mysql的数据表导入到sqlserver当中。

    本人比较愚笨,操作方法 是先将mysql的数据表到处为insert脚本,再在sqlserver中执行sql脚本

    在网上看了一下那些方法 ,感觉很迷,如果有更好更简单的办法请大神指教。毕竟这种办法真的还是挺痛苦的。比如我有一张表的数据有10W条。哇塞,根本不能直接插入,需要分段来,而且还要去掉mysql字段会自动加的分号。数据多了真的很痛苦,电脑有时候还要直接卡死。

    遇到了 两个问题。

    第一:如果mysql中的主键是自动增长的话,直接插入会报:

    解决办法,在插入之前写上这么一句:SET IDENTITY_INSERT table ON

    当然在insert完成之后不要忘记关闭: SET  IDENTITY_INSERT table OFF

    如果不关闭的话 你在下次再想对另外一张表这样操作的时候,又会报错

    所以,你打开了就要记得关上。

    第二:vachar(n)在两种数据库中的区别。

    在导入数据的时候,我就明显感觉到mysql中的vachar(400)要比sqlserver中的vachar(400)存入的数据更多。如果数据库中字段长度不够的时候就会报:将截断字符串或二进制数据

    然后就谷歌了一下到底是什么区别。

    然后得知 在mysql5.0版本以上,vachar(n)可以存放的 字符个数就是n,而sqlserver中的vachar(n),这里的n表示的是 字节数,所以sqlserver中的 vachar(n)就只能存放mysql的 一半吧。

    要想将mysql的vachar(n)转换到sqlserver中,最好sqlserver存入vachar(2n)吧,这样能保证你的所有数据都不会报“将截断字符串或二进制数据”这个错误

    这里有一篇博文介绍了mysql中vachar的 详情,个人感觉还比较可以,附上链接:

    MySql中的varchar类型:http://www.cnblogs.com/doit8791/archive/2012/05/28/2522556.html

  • 相关阅读:
    关于typecho发布文章后的错位
    Python3 和 Python2的区别
    django apache error.log过大
    php 数组转json格式
    php get传递数据
    SVN中文件属性
    linux中django+apache配置
    php添加环境变量
    php和apache安装心得
    php 5.6.14手动安装 php -v 显示没有安装
  • 原文地址:https://www.cnblogs.com/tangyonghui/p/7344749.html
Copyright © 2011-2022 走看看