Я пытаюсь прочитать файл Excel и добавить (вставить) данные в существующую таблицу SQL (Azure DB). Таблица имеет поле auto_increment, которое обрабатывается SQL и не хочет прикасаться. Я пытаюсь вставить значения, используя это https://pandas.pydata.org/pandas-docs/version/0.23.4/io.html#sql-queries
но это порождает ошибки.
Я могу запросить данные, но не могу вставить. Вот мой код и ошибка
SQL Table: Hello
aID Int auto_increment
Col1 Int
Col2 String
import pandas as pd
import sqlalchemy
import datetime
import urllib
from sqlalchemy import create_engine
params = urllib.parse.quote_plus("DRIVER={ODBC Driver 17 for SQL Server};serverinformation;database;username;passwrod)
engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
print('connected')
path = r'excel_file'
df= pd.read_excel(path)
//Excel file has same columns as SQL table except aID which auto_increment
enter code here
print(df.info())
df.to_sql(
name='Hello', # database table name
con=engine,
schema= '[dbo]',
if_exists='append',
index = False
)
Getting following error
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42S01', "[42S01] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]There is already an object named 'Hello' in the database. (2714) (SQLExecDirectW)"
// and it tries to create the DB table
(Background on this error at: http://sqlalche.me/e/f405)
I want to know what i am doing wrong and where? Cannot seem to find the solution
Редактировать: Решение
Мой метод был написать, это была ошибка, я не правильно ее прочитал. Если у вас есть несколько схем, чем явно указать схему, которую вы хотите загрузить данные в таблицу. Еще раз проверьте ваш df и убедитесь, что он совпадает со столбцами таблицы.