0
我想使用在MySQL数据库中的python脚本中创建的一些值来更新表。这是有问题的行:无法在Python中使用MySQL插入值到表中
dbCursor.execute("INSERT INTO Solution (ProblemName, TourLength, Date, Author, Algorithm, RunningTime, Tour) VALUES ('%s', '%d', '%s', '%s', '%s', '%d', '%s')" % (sys.argv[1], bestDist, "Foo Bar", "CURDATE()", "Greedy + 2-Opt", timeAllowed, bestRoute))
dbConnection.commit()
它产生这样的错误:
pymysql.err.InternalError: (1136, "Column count doesn't match value count at row 1")
我试着用搜索引擎的问题和搜索这个网站的解决方案,但没有那些的,我已经找到完全符合我的。因为这个问题,修复也没有解决我的问题。所以我不确定我现在可以做什么。从我所看到的,我所有的列名称都与值和格式化的变量相匹配。
什么可能导致此问题?
CREATE TABLE IF NOT EXISTS Solution (
SolutionID int(11) NOT NULL AUTO_INCREMENT,
ProblemName varchar(32) NOT NULL,
TourLength double NOT NULL,
Date date DEFAULT NULL,
Author varchar(32) DEFAULT NULL,
Algorithm varchar(32) DEFAULT NULL,
RunningTime int(11) DEFAULT NULL,
Tour mediumtext NOT NULL,
CONSTRAINT SPK PRIMARY KEY (SolutionID),
CONSTRAINT SolPName FOREIGN KEY (ProblemName) REFERENCES Problem (Name) ON DELETE CASCADE
);
我相信,如果你提供solutionID它会运行 – dgan
我读的地方,如果你不为属性提供一个值,被标记为AUTO_INCREMENT,那么它将自动更新并为该属性创建一个新值。 –
@FenixPrime你说得对。没有必要提供SolutionID的值。 –