我想字段我插入的数据是一个变量。虽然有很多关于通过变量传递值的问题,但是关于传递列名的问题并不多。
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);