无法在python中获得sql查询的正确语法



我想字段我插入的数据是一个变量。虽然有很多关于通过变量传递值的问题,但是关于传递列名的问题并不多。

ppg = [22.6]
import mysql.connector

mydb = mysql.connector.connect(host="localhost",
user="root",
password="#########",
database="#########")
mycursor = mydb.cursor()


command = (
"INSERT INTO table1({t_dot}) where id = 2"
"VALUES(%s)"
)
data = (float(ppg))
mycursor.execute(command.format(t_dot = 'Stats 1 Column'),data)
mydb.commit()
mycursor.close()
mydb.close()  

数据库有一个id列作为主键。

我正在获取

ProgrammingError:你的SQL语法有错误;查看与MySQL服务器版本对应的手册,以获得使用

的正确语法。

MYsql和其他rdbms没有insert Where

插入只插入一行,没有任何条件,只要所有涉及的规则都被遵守

你能做什么

ppg = [22.6]
import mysql.connector

mydb = mysql.connector.connect(host="localhost",
user="root",
password="#########",
database="#########")
mycursor = mydb.cursor()


command = (
"INSERT INTO table1(`{t_dot}`) VALUES (%s)"
)
data = (float(ppg),)
mycursor.execute(command.format(t_dot = 'Stats 1 Column'),data)
mydb.commit()
mycursor.close()
mydb.close()

表的其他列有默认值或为auto_increment,否则mysql将通过错误

对于更新,您还需要像

之前那样替换列
command = (
"UPDATE table1 SET `{t_dot}` =  %s WHERE id =  %s"
)
data = (float(ppg),2)
mycursor.execute(command.format(t_dot = 'Stats 1 Column'),data)

您的insert查询语句是错误的。

INSERT INTO SELECT:https://dev.mysql.com/doc/refman/8.0/en/insert-select.html

如果你想选择一个/多个值,你可以这样做:

INSERT INTO table1(t_dot)  ( select t_dot 
from table1 
where id = 2) ;

或者如果您想只插入记录2:

INSERT INTO table1(t_dot) values(2);

最新更新