找回密码
 立即注册

QQ登录

只需一步,快速开始

sqlite数据库转换到mysql操作流程

需求:需要将sqlite数据库导入mysql
运行环境:Centos 7 x64  Python2.7
解决步骤:
1.先将sqlite数据库导出为mysql
  1. sqlite3 xmspace.net.db .dump > xmspace.net.sql
复制代码


2.用python进行转换

  1. #-- coding:UTF-8 --
  2. import re
  3. import io


  4. def convert_sqlite_to_mysql(sql):
  5.     # 移除 PRAGMA 语句
  6.     sql = re.sub(r'PRAGMA .*?;', '', sql)

  7.     # 修改 BEGIN TRANSACTION 为 START TRANSACTION
  8.     sql = sql.replace('BEGIN TRANSACTION;', 'START TRANSACTION;')

  9.     # 替换 COMMIT TRANSACTION 为 COMMIT
  10.     sql = sql.replace('COMMIT;', 'COMMIT;')

  11.     # 替换 ROLLBACK TRANSACTION 为 ROLLBACK
  12.     sql = sql.replace('ROLLBACK;', 'ROLLBACK;')

  13.     # 修改 AUTOINCREMENT 为 AUTO_INCREMENT
  14.     sql = sql.replace('AUTOINCREMENT', 'AUTO_INCREMENT')

  15.     # 替换数据类型
  16.     sql = sql.replace('INTEGER', 'INT')
  17.     sql = sql.replace('TEXT', 'VARCHAR(255)')

  18.     # 替换双引号为反引号
  19.     sql = sql.replace('"', '`')

  20.     # 添加 CHARACTER SET utf8mb4 到表定义中
  21.     sql = re.sub(r'CREATE TABLE `(.*?)` \(', r'CREATE TABLE IF NOT EXISTS `\1` (', sql)
  22.     # sql = re.sub(r'\);', r') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;', sql)

  23.     # 处理 INSERT 语句,确保数据字符集正确
  24.     sql = re.sub(r'INSERT INTO `(.*?)` \((.*?)\) VALUES', r'INSERT INTO `\1` (\2) VALUES', sql)
  25.     sql = re.sub(r'INSERT INTO `sqlite_sequence`.*?;', '', sql)
  26.     return sql

  27. # 读取原始的 SQLite dump 文件
  28. with io.open('xmspace.net.sql', 'r', encoding='utf-8') as file:
  29.     sql_dump = file.read()

  30. # 转换为 MySQL 兼容的 SQL
  31. mysql_compatible_sql = convert_sqlite_to_mysql(sql_dump)

  32. # 将转换后的 SQL 写入新的文件
  33. with io.open('xmspace.net_mysql.sql', 'w', encoding='utf-8') as file:
  34.     file.write(mysql_compatible_sql)

  35. print("SQL conversion complete. Please check 'dump_mysql.sql' for MySQL import.")
复制代码



本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://www.xmspace.net/thread-1046-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 14 小时前 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • nvidia-smi限制显卡功耗
    • PVE解决开机后网卡灯灭
    • Cordova开发环境配置(Android)
    • PVE下WIN10虚拟机C盘扩容流程
    • gitee的SSH认证配置流程
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表