我需要将数据从 MSSQL(Microsoft SQL Server)传输到 MySQL,对我来说最好的选择是编写一个 python 脚本,将数据从 MSSQL 导出为 csv,然后将此 csv 导入 mysql。到目前为止,这个过程对我来说效果很好(我不是在寻找另一种方法来做到这一点)。
从 MSSQL 到 MySQL 的数据类型转换是这样完成的:
MSSQL_MySQL_MAP = {
'nvarchar' : 'varchar',
'varchar' : 'varchar',
'bit' : 'boolean',
'smallint' : 'smallint',
'int' : 'int',
'datetime' : 'datetime',
'timestamp' : 'datetime',
'ntext' : 'longtext',
'real' : 'double',
'image' : 'BLOB',
'float' : 'float',
'money' : 'decimal',
}
使用以下命令将导出的 csv 导入 MySQL。
"""LOAD DATA INFILE '%s/%s' REPLACE INTO TABLE %s FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'"""
我有一种情况,MSSQL 中有一个“位”数据类型,导出的 CSV 包含一个 True of False 字符串,如下所示:
22294,501,q4h,12 ,False,False,None,False,None,None,None,0,None,None
让 MySQL 了解 True 或 False 字符串是布尔值 1 或 0 并正确导入它的最佳方法是什么?目前,我收到以下警告:
Warning: Incorrect integer value: 'False' for column 'system_code' at row 7
有没有办法传递一些参数以及可以完成此操作的加载文件数据?