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

  • 相关阅读:
    Windows 10 win 10 切换输入法的快捷键
    windows 7输入regedit 打不开注册表
    ios开发之NSData
    ios数组倒序
    iOS NSString使用stringWithFormat的拼接
    BLE 广播格式定义
    低功耗蓝牙UUID三种格式转换
    iOS 如何判断一个点在某个指定区域中
    iOS 毛玻璃效果的实现方法
    iOS毛玻璃效果的实现方法
  • 原文地址:https://www.cnblogs.com/tangyonghui/p/7344749.html
Copyright © 2011-2022 走看看