Я занимаюсь удалением образца базы данных для службы такси и пытаюсь заполнить таблицу PhoneCall некоторыми данными, используя Python и библиотеку mysql.connector .Столбцы таблицы PhoneCall:
idCall, int(11), PRIMARY KEY
Operator_idOperator, int(11), NOT NULL, FOREIGN KEY
Client_idClient, int(11), NOT NULL, FOREIGN KEY
datetimeValue, datetime
Duration, int(11)
Я объявляю пустой список и генерирую некоторые данные для заполнения таблицы:
query = "INSERT INTO TaxiTest.PhoneCall (idCall, Operator_idOperator, Client_idClient, datetimeValue, Duration) VALUES (%s, %s, %s, %s, %s)"
После этого, Я генерирую данные
data = []
for i in range(1500):
idCall = i + 1
(Operator_idOperator, Client_idClient) = (20, 21) # Sample ints
datetime_value = datetime.now()
duration = 60
t_tuple = (idCall, Operator_idOperator, Client_idClient, datetime_value, duration)
data.append(t_tuple)
Далее я пытаюсь вставить данные, используя синтаксис курсора.executemany (запрос, данные):
cnx = mysql.connector.connect(**config)
cnx.autocommit = True
cursor = cnx.cursor()
try:
cursor.executemany(query, data)
log = cursor.fetchall()
print("Result: " + log)
except mysql.connector.Error as err:
print(err.msg)
Итак, результат:
Data[0]: (1, 46, 2521, datetime.datetime(2018, 9, 17, 22, 44, 20, 159722), 55)
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'TaxiTest.PhoneCall' at line 1
Хотя я уже заполнил около 5 таблиц в этой базе данных, я не вижу никаких ошибок в этой INSERT
Statement.
Кажется, что единственное решение - записать все 1500 записей данных в файл output.txt
и выполнить это с помощью MySQL Workbench, поскольку при вставке с MySQL Workbench * 1050 ошибки нет*, но это не приветствуется.
PS Это мой первый вопрос по StackOverflow.Так долго ждали этого момента, чтобы получить «монеты» для комментирования и оценки других вопросов и ответов.