最近将学校旧版本毕业证书查询系统asp+access开发的毕业证书查询系统,转换为php+mysql原生开发的毕业证书查询系统,先将access .mdb转换为.sql,这个数库量有3万条数据。
用python写的转换代码:
import pyodbc
def convert_access_table_to_mysql(access_db, table_name, output_sql_file, database_name):
    # 连接 Access 数据库
    conn_str = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + access_db
    access_conn = pyodbc.connect(conn_str)
    cursor = access_conn.cursor()
    with open(output_sql_file, 'w', encoding='utf-8') as f:
        # 在文件开头添加 USE 数据库的语句
        f.write(f'USE {database_name};\n\n')
        # 获取指定表的结构
        cursor.execute(f'SELECT * FROM {table_name}')
        columns = [column[0] for column in cursor.description]
        # 创建 MySQL 表的 SQL 语句
        create_table_sql = f'CREATE TABLE {table_name} (\n'
        for column in cursor.description:
            col_name = column[0]
            col_type = column[1]
            mysql_type = 'TEXT'  # 默认为 TEXT
            if col_type == pyodbc.SQL_INTEGER:
                mysql_type = 'INT'
            elif col_type == pyodbc.SQL_VARCHAR:
                mysql_type = 'VARCHAR(255)'
            create_table_sql += f'    {col_name} {mysql_type},\n'
        create_table_sql = create_table_sql.rstrip(',\n') + '\n);\n\n'
        f.write(create_table_sql)
        # 导出数据
        cursor.execute(f'SELECT * FROM {table_name}')
        for row in cursor.fetchall():
            # 处理 ID 字段,确保它是整数类型
            values = []
            for idx, value in enumerate(row):
                # 检查 ID 字段
                if columns[idx] == 'ID' and value is not None:
                    value = str(int(value))  # 强制转换为整数
                elif value is not None:
                    value = f'"{str(value)}"'  # 将其他字段作为字符串处理
                else:
                    value = 'NULL'
                values.append(value)
            column_names = ', '.join(columns)
            insert_sql = f'INSERT INTO {table_name} ({column_names}) VALUES ({", ".join(values)});\n'
            f.write(insert_sql)
        f.write('\n')
    cursor.close()
    access_conn.close()
    print(f'转换完成,SQL 语句已保存至 {output_sql_file}')
# 使用示例
convert_access_table_to_mysql(r'C:\\Users\\Administrator\\Desktop\\zhengshu.mdb', 'XcUserInfo', r'C:\\Users\\Administrator\\Desktop\\zhengshu.sql', '数据库名字')
#这里只从.mdb转了一个表到.sql里。
1、要安装access驱动,https://www.microsoft.com/zh-tw/download/details.aspx?id=54920
(确保已经安装了 Microsoft Access ODBC 驱动程序。可以按照以下步骤检查:
- 打开 控制面板 > 管理工具 > ODBC 数据源管理器。
- 在 系统 DSN 或 用户 DSN 标签页中,确认是否存在 Microsoft Access Driver (*.mdb, *.accdb)驱动程序。)
2、https://pypi.org/project/PyMySQL/#files 安装.whl文件 pip install pymysql.whl文件
3、https://pypi.org/project/pyodbc/#files 选择当前python版本,支持.whl文件



END
如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。
本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用!
Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售!
Wmphp.com(完美源码)客服QQ:136882447
Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步)
请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
完美源码 » 毕业证书查询系统Access .mdb转 Mysql .sql数据库
    完美源码 » 毕业证书查询系统Access .mdb转 Mysql .sql数据库
 
         
     
  
      
             
  
      
             
  
      
             
  
      
            