У меня есть две таблицы в MS SQL Server 2014, а именно.test1 и test2.Ниже приведены поля test1 и test2
таблица test1
row_id number name tabdate
0 5 11 First 2019-05-21
1 6 12 Second 2019-05-20
2 7 13 Third 2019-05-18
3 8 14 Fourth 2019-05-16
таблица test2
row_id number name tabdate
0 1 18 First 2019-05-21
1 2 19 Second 2019-05-20
2 3 13 Third 2019-05-18
Я хочуdelete
запись в test1 на основе row_id
.В то же время я хочу delete
соответствующую запись в test2 путем извлечения поля tabdate
и name
из test1 для выбранного row_id
, а затем сопоставить их в test2.Я использую Python для этого.Ниже приведен фрагмент кода.
import pyodbc
import pandas as pd
cnxn = pyodbc.connect('MS SQL Serve DB credentials')
cur = cnxn.cursor()
##take row_id as input##
row_id = input()
##retrieving two field information using row_id as input##
quer_del_test1 = "select name,tabdate from test1 where row_id ='{0}'".format(row_id)
## convert into daraframe using pandas##
df_1 = pd.read_sql_query(quer_del_test1,cnxn)
##Now delete two records from test1 and test2 respectively##
del_query = "DELETE FROM test1 WHERE row_id='{0}'".format(row_id)
del_query_2 = "DELETE FROM test2 WHERE name = '{0}' and tabdate = {1}".format(df_1['name'],pd.to_datetime(df_1['tabdate']))
cur.execute(del_query_2)
cur.execute(del_query)
cnxn.commit()
cnxn.close()
Когда я запускаю приведенный выше код, я получаю сообщение об ошибке следующим образом:
('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near '2019'. (102) (SQLExecDirectW)")
Я не могу понять, где я ошибаюсь.В MS SQL Server tabdate
Тип данных был установлен как date
.
Пожалуйста, пролите немного света на это.