如果要使用sql,请设置默认排序规则

2024-05-08 03:23:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用tou-sql方法将pandas数据帧上传到mysql数据库

关于这个主题,我的问题是:如何处理字符串的不同排序?表本身应该不区分大小写,只有一列除外

列的排序规则可以使用方法的dtype属性定义为\u sql。但是,如何为非特定列的字符串设置默认排序规则

from sqlalchemy import create_engine, TEXT
from pandas import DataFrame

df = DataFrame({'id': ['DEB0001wXJj', 'DEB0001wXJJ'], 
                'addr': ['1st Street 1', 'Other Street 99']})

d_types = {'id': TEXT(collation='utf8_bin')}


mysql = create_engine("mysql+pymysql://USER:PW@localhost:3306/DB?charset=utf8",)
df.to_sql('table', mysql, if_exists='replace', dtype=d_types)

最后一个数据帧比示例中的列多得多,并且这些列在不同的数据帧之间有所不同

作为替代方案,我认为:

  • 在上载到数据库时显式设置每列的排序规则
  • 上传时让排序规则保持不变,稍后在数据库中使用Engine.execute(…)方法对其进行更改