Sqllite表结构导入Mysql库

1、sqllite 导出表结构 为  xxx.sql

2、格式、语法、关键字之类的修改(两者sql的语法有差异)

3、导入mysql


步骤2、格式转换参考:

1、建索引语句之类的替换 http://www.jianshu.com/p/27ad93c28354

2、表名的[] 符号替换   https://zhuanlan.zhihu.com/p/20778415

3、datetime 默认值问题  DEFAULT (DATETIME ('now', 'localtime'))   https://segmentfault.com/q/1010000002666451

4、mysql datetim 默认值设置 

timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
  https://zhidao.baidu.com/question/246389703.html

5、BLOB/TEXT column 'Id' used in key specification without a key length(主键 or 唯一索引都会报错)

       mysql只能使用固定长度的field作为主键,所以不能使用text 来做为主键,可以使用varchar 来替换 

https://stackoverflow.com/questions/1827063/mysql-error-key-specification-without-a-key-length

6、id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL DEFAULT 0

    无效的默认值  。 int(10) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT

7、Id VARCHAR(255) CONSTRAINT sqlite_autoindex_CaseInfo_1 PRIMARY KEY NOT NULL UNIQUE,  主键约束问题

     mysql支持的key约束只有主键约束(PRIMARY KEY),唯一键值(UNIQUE KEY)约束和外键约束(FOREIGN KEY)

   http://blog.csdn.net/luketty/article/details/5774797

8、关键字注意

  比如 Key为mysql的关键字

http://blog.csdn.net/inaoen/article/details/24108969

9、BLOB/TEXT column 'Version' can't have a default value

   Text无法设置默认值   见 :http://blog.csdn.net/gxk9933/article/details/6210132

原因在于:
1、  MYSQL5.x是不允许BLOB/TEXT类型的字段拥有默认值的。
2、  由于MYSQL是在‘strict mode’严格模式下工作的,如果改为非严格模式,上面的语句就可以执行成功
3、  MYSQL5.x在windows下是默认以‘strict mode’工作的,当执行上面的语句时,会给你一个错误或者警告信息
解决方法:
1、  找到mysql安装根目录下的my.ini文件
2、  找到这样一行:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
3、  在其前面加‘#’将其注释掉:
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
4、  重启mysql服务
5、  重新执行你的mysql语句


......体力活。。。。





猜你喜欢

转载自blog.csdn.net/m1361459098/article/details/78839916
今日推荐