SQLite3按WHERE条件插入列值报错:near 'WHERE'语法错误
问题原因与解决方法
你的SQL语法错误,因为INSERT语句不能搭配WHERE子句——INSERT是用来向表中新增一行数据的,而你要做的是修改已存在的、Name列匹配指定值的行,这时候应该用UPDATE语句。
修正后的代码如下:
cours.execute("""UPDATE NewTable SET Straight = ?, Right = ?, Left = ? WHERE Name = ?""", (DIRECTIONS['straight'], DIRECTIONS['right'], DIRECTIONS['left'], name)) conn.commit()
关键说明:
- UPDATE语句的语法逻辑是:先指定要更新的表,然后用
SET子句定义要修改的列和对应的值,最后用WHERE筛选出需要更新的行 - 注意占位符
?的顺序要和后面元组里的参数顺序完全对应:前三个占位符对应三个列的新值,最后一个对应Name的匹配条件
内容的提问来源于stack exchange,提问作者Or Weisman
相关产品推荐
相关产品推荐

