• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > sqlite如何迁移到MySQL脚本的实例介绍

sqlite如何迁移到MySQL脚本的实例介绍

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了sqlite,MySQL,脚本等相关知识,希望本文的分享对您有所帮助
这篇文章主要介绍了sqlite迁移到mysql脚本的方法,需要的朋友可以参考下

废话不多说了,直接给大家贴代码了,具体代码如下所示:


#! /usr/bin/perl
#
# based on https://stackoverflow.com/a/87531/5742651
# usage: sqlite3 .dump database_name.sqlite3 | perl sqlite2mysql.pl | mysql -u root -p $import_database_name
#
# ignore follow lines:
#  BEGIN TRANSACTION 
#  COMMIT 
#  sqlite_sequence 
#  CREATE UNIQUE INDEX
#  PRAGMA foreign_keys=OFF
# "tablename/field" => `tablename/field`
# booleans 't' and 'f' => 1 and 0
# AUTOINCREMENT => AUTO_INCREMENT
# varchar => varchar(255)
# CREATE TABLE table... => DROP TABLE table; CREATE TABLE table...
# Merge insert sqls into multiple insert to speed up
#  INSERT INTO table VALUES('val1');
#  INSERT INTO table VALUES('val2');  => INSERT INTO table VALUES('val1'), ('val2'), ('val3');
#  INSERT INTO table VALUES('val3');
my $open=0;
my $line_cache = '';
# For speed up
print "SET GLOBAL max_allowed_packet=209715200;\n";
#print "SET AUTOCOMMIT=0;\n";
while ($line = <>){
  if (($line !~ /PRAGMA foreign_keys=OFF/) && ($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){
   if ($line =~ /CREATE TABLE \"([a-z_0-9]*)\"(.*)/){
   $name = "\`$1\`";
   $sub = $2;
   $sub =~ s/varchar([^(])/varchar(255)$1/g;
   $line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE $name$sub\n"; 
   }
   elsif ($line =~ /CREATE VIEW ([a-z_0-9]*)(.*)/){
   $name = "\`$1\`";
   $sub = $2;
   $line = "DROP VIEW IF EXISTS $name;\nCREATE VIEW $name$sub\n";
   }
   elsif ($line =~ /INSERT INTO \"([a-z_]*)\" VALUES(.*);/){
        if ($open == 0) {
          $open = 1;
       $line_cache .= "INSERT INTO \`$1\` VALUES $2";
        } else {
          $line_cache .= ", $2";
        }
        next;
   }else{
   $line =~ s/\'\'/\\\'/g;
   }
    if ($open == 1) {
       $open = 0;
       $line = $line_cache.";\n".$line;
       $line_cache = '';
    }
   $line =~ s/\"/`/g;
   $line =~ s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g;
   $line =~ s/THIS_IS_TRUE/1/g;
   $line =~ s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g;
   $line =~ s/THIS_IS_FALSE/0/g;
   $line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
   print $line;
  }
}
#print "SET AUTOCOMMIT=1;\n";

总结

以上就是sqlite如何迁移到MySQL脚本的实例介绍的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 解析mysql中的auto_increment的问题
  • 怎么重置mysql的自增列AUTO_INCREMENT初时值
  • 解析SQLite中的常见问题与总结详解
  • 浅谈SQLite时间函数的使用说明与总结分析
  • 深入SQLite基本操作的总结详解
  • Mysql auto_increment 重新计数(让id从1开始)
  • mysql中自增auto_increment功能的相关设置及问题
  • 在.Net中操作SQLite数据库的详细优点有哪些?
  • 实例讲解sqlite迁移到mysql脚本的方法_
  • sqlite如何迁移到MySQL脚本的实例介绍

相关文章

  • 2018-12-05php 处理数组和XML之间的互相转换实例代码
  • 2017-05-11php mysql localhost,127.0.0.1和ip区别
  • 2018-12-05SQLserver查询数据类型为ntext是空或NULL值的方法
  • 2018-12-05mysql中innoDB锁的介绍
  • 2017-05-11Mysql权限管理grant命令使笔记
  • 2018-12-05关于mysql的mycat中间件安装与使用详解
  • 2018-12-05详解MySQL备份、还原、innoDB开启
  • 2018-12-05windows 7安装ORACLE 10g客户端的方法分享
  • 2018-12-05深入理解mysql SET NAMES和mysql(i)_set_charset的区别
  • 2018-12-05MySQL取出随机数据

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 用SQL统计SQLServe表存储空间大小的代码
    • SQL处理多级分类,查询结果呈树形结构
    • mysql允许远程访问
    • MySQL使用命令备份和还原数据库
    • PHP之Mysql常用SQL语句示例的深入分析
    • asp采用ODBC接口访问MySQL的方法
    • 简单实用SQL脚本Part SQLServer 2005 链接服务器
    • Oracle赋予用户sysdba权限
    • Couchbase Server 2.0 发布,NoSQL 数据库
    • 与MSSQL对比学习MYSQL的心得(三)--查看字段的长度

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有