Я очень новичок в Python, поэтому, надеюсь, я предоставлю информацию, необходимую для ответа на вопрос. Я пытаюсь обновить/вставить записи во вновь созданную базу данных. Я создал соединение с базой данных без проблем, я даже могу вставлять записи. Но когда я пытаюсь понять, что обновлять/вставлять, у меня возникает проблема. У меня есть кадр данных (DF1), который содержит 2 столбца (GovernmentID, Geometry).
вот код, который я использую:
DF1 = pd.read_csv("C:\\Users\\pvagis\\Documents\\Trajectories.csv")
DF1 = DF1.astype({"GovernmentID": str, "Geometry": str})
print(DF1.dtypes)
cursor = sql_conn.cursor()
i = 0
while i <= (len(DF1)-1):
DB_DATA={"DI_UWI":DF1.at[i,'GovernmentID'],
"DI_GEOM":DF1.at[i,'Geometry']}
UpsertQuery = ("""
IF NOT EXISTS (select UWI from LAND_JEOPARDY_DI_API_WELL_PATHS where UWI = :DI_UWI)
INSERT INTO LAND_JEOPARDY_DI_API_WELL_PATHS (WELL_PATH, UWI) values (:DI_GEOM, :DI_UWI)
ELSE
UPDATE LAND_JEOPARDY_DI_API_WELL_PATHS SET WELL_PATH = :DI_GEOM where UWI = :DI_UWI
""")
cursor.execute(UpsertQuery, DB_DATA)
sys.stdout.write("\r{}% complete ".format(int(i/len(DF1)*100)))
i = i + 1
sql_conn.commit()
cursor.execute("Delete from LAND_JEOPARDY_DI_API_WELL_PATHS where WELL_PATH = 'nan'")
sys.stdout.write("\r{}% complete ".format(int(i/len(DF1)*100)))
sql_conn.commit()
cursor.close()
sql_conn.close()
«UpsertQuery» - это то место, где у меня возникла проблема
Спасибо всем
cursor.execute(UpsetQuery, args)
- person M Z   schedule 11.07.2020