MySQL Python INSERT 似乎令人满意时查询语法错误?

MySQL Python query syntax mistake on INSERT when it seems to be satisfying?

我正在开发出租车服务的示例数据库,并尝试使用 Python 和 mysql.connector[=53= 用一些数据填充 PhoneCall table ] 图书馆。 PhoneCall table 列是:

  • 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)

我声明一个空列表并生成一些数据来填充 table:

  • 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)

接下来,我尝试使用 cursor.executemany(query, data) 语法插入数据:

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 tables,但我没有发现这个INSERT语句有任何错误。

似乎唯一的解决方案是将所有 1500 条数据写入 output.txt 文件并使用 MySQL Workbench 执行,因为 没有使用 MySQL Workbench 插入时出错,但这并不受欢迎。

P.S。这是我在 Whosebug 上的第一个问题。等了这么久才得到一些 'coins' 来评论和评价其他问题和答案。

没有尝试,我会说它是日期时间对象。

您可以试试这个代码:

from datetime import datetime
datetime_value = datetime.now()
formatted_date = datetime_value.strftime('%Y-%m-%d %H:%M:%S')