为什么在我的 INSERT INTO 语句末尾附加 BETWEEN AND 时会收到 MariaDB 语法错误?

Why am I receiving MariaDB syntax error when appending BETWEEN AND at the end of my INSERT INTO statement?

在为 BETWEEN AND SQL 查询添加 python 代码后,我似乎遇到了 SQL 语法错误。

有问题的代码:

sqlInsertQuery = """
INSERT INTO `table` (`row1`, `row2`, `row3`, `row4`, `row5`, `row6`, `row7`, `date_modified`, `row9`)
VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)
ON DUPLICATE KEY UPDATE `row2` = %s, `row3` = %s, `row4` = %s, `row5` = %s, `row6` = %s, `row7` = %s, `date_modified` = %s, `row9` = %s
WHERE `date_modified` BETWEEN %s AND %s 
"""

between1 = "07/18/2021 00:00:00"
between2 = "08/03/2021 00:00:00"

sqlInsertData = (row1, row2, row3, row4, row5, row6, row7, row8, row9, row2, row3, row4, row5, row6, row7, `date_modified`, row9, between1, between2)

# Link to the method I used for this statement
# 

databaseConnectionCursor.execute(sqlInsertQuery, sqlInsertData)

问题错误:

mariadb.ProgrammingError: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near WHERE row8 BETWEEN ? AND ? at line 1

我在 BETWEEN AND 语句中使用 %s 的方式有问题吗?在我附加 BETWEEN AND 语句之前,INSERT INTO 语句工作正常。我的 table 的所有行都被格式化为 VARCHAR,并且变量被声明为字符串。

您不能在 INSERT 语句中使用 WHERE 子句;这就是为什么这是一个语法错误。这样的事情简直就是 not in the spec for MySQL/MariaDB INSERT statements.