MySQL和SQLite都是流行的关系型数据库管理系统(RDBMS),但它们在设计、功能和用途上有显著差异。MySQL通常用于服务器环境,支持多用户并发访问,而SQLite则是一个轻量级的嵌入式数据库,适用于单用户或低并发的应用场景。
从MySQL导入数据到SQLite主要包括以下几种类型:
AUTO_INCREMENT)转换为SQLite兼容的语法。`)改为双引号(")。import mysql.connector
import sqlite3
# 连接MySQL数据库
mysql_conn = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="database_name"
)
mysql_cursor = mysql_conn.cursor()
# 连接SQLite数据库
sqlite_conn = sqlite3.connect('database_name.db')
sqlite_cursor = sqlite_conn.cursor()
# 获取MySQL表结构
mysql_cursor.execute("SHOW TABLES")
tables = mysql_cursor.fetchall()
for table in tables:
table_name = table[0]
# 创建SQLite表
mysql_cursor.execute(f"SHOW CREATE TABLE {table_name}")
create_table_sql = mysql_cursor.fetchone()[1]
create_table_sql = create_table_sql.replace("`", "\"")
sqlite_cursor.execute(create_table_sql)
# 导入数据
mysql_cursor.execute(f"SELECT * FROM {table_name}")
rows = mysql_cursor.fetchall()
sqlite_cursor.executemany(f"INSERT INTO {table_name} VALUES ({','.join(['?']*len(rows[0]))})", rows)
# 提交并关闭连接
sqlite_conn.commit()
mysql_conn.close()
sqlite_conn.close()INT类型在SQLite中可以直接使用,但MySQL的DATETIME类型需要转换为SQLite的TEXT类型。通过以上方法,你可以将MySQL数据成功导入到SQLite数据库中,并解决常见的导入问题。
没有搜到相关的文章