"The name of the object to be created is identical to the existing name" 在 IBM DB2 中 pandas.to_sql if_exists='append'

"The name of the object to be created is identical to the existing name" in IBM DB2 with pandas.to_sql if_exists='append'

请帮忙解决这个问题。 sqlalchemy-1.4.31 pandas-1.4.0 Python3.6.8

engine = create_engine(ConfigDbDb2.sqlalchemy_engine_c_string, )
chumks = pd.read_sql_query(get_goods, engine, chunksize=chunksize)

for i, chunk in enumerate(chumks):
    print(i)
    chunk['predicted'] = chunk['name'].progress_apply(my_function)
    chunk.to_sql(table_name, engine, if_exists='append', index=False, dtype=dtype_good_test)

第一次写作后我有

(ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError:语句执行失败:[IBM][CLI 驱动程序][DB2/LINUXX8664] SQL0601N 要创建的对象的名称与现有对象的名称相同名字

此外,出于某种原因,sqlalchemy + pandas 在附加时忽略连接字符串中的架构参数。所以你应该直接在 pandas dataframe 的 to_sql 语句中定义它,比如

chunk.to_sql(table_name, engine, schema = 'MY_SCHEMA', if_exists='append', index=False, dtype=dtype_good_test)