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')
我正在开发出租车服务的示例数据库,并尝试使用 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')