我有一个由232个唯一列组成的数据帧,这些列需要写入SQL表。密钥是看起来像的传感器数据
Index(['DMAnt[-]',
'DMCst[-]',
...
'WRP[%]',
'WRD_S[rpm]'],
dtype='object', length=232)
当我试图通过to_SQL函数在SQL中创建表时
df_send.to_sql('Sensor_table', con=engine, if_exists='append', index=False)
我收到以下错误:
ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]The identifier that starts with 'DMAnt[-] FLOAT(53) NULL, DMCst[-] FLOAT(53) N' is too long. Maximum length is 128. (103) (SQLExecDirectW)")
这个错误是不是因为我有很多列而抱怨查询太长?我该如何解决这个问题?
错误是提到SQL Server列名只能是128个字符的限制。您需要将DataFrame列名修改为符合该长度要求。
SQL Server的限制:https://learn.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-服务器-ver15
错误消息表示列名太长。将列重命名为稍短的列,使其保持在128个字符以下,错误消息应该会消失。